Студентам с лабораторными сюда (архивная - 2015)

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by _Great_, 20 Jun 2007.

Thread Status:
Not open for further replies.
  1. velvetdust

    velvetdust New Member

    Joined:
    8 Nov 2008
    Messages:
    7
    Likes Received:
    0
    Reputations:
    -5
    Такое задание (язык Cи, не С++)
    Моих скудных знаний хватило на такой код, который по идее должен работать, но на практике висит:
    Code:
    #include <stdio.h>
    #include <conio.h>
    
    void main ()
    {
    int i=0;
    int Enter = 13;
    int num=0;
    int x=0;
    int u;
    int f;
    int mas[10][10];
    int bl[10]
    clrscr();
     struct spisok
     {
     char imya [10];
     char pol ;
     int rost ;
     int group ;
     }group[10];
     while (num<10)
     {
    printf ("\nvvedite imya\n");
    while (i<10)
     {
     group[num].imya [i] = getch();
       if (group[num].imya [i] == Enter) break;
     printf ("%c", group[num].imya [i]);
     i++;
      }
    while (i<10)
      {
       group[num].imya[i] = 0;
       i++;
       }
      i=0;
      u=0;
    printf("\nVVedite rost\n");
    scanf ("%d",&group[num].rost); fflush (stdin);
    printf("\nVVedite gruppy\n");
    scanf ("%d",&group[num].group); fflush (stdin);
    printf ("vvedite pol M/J\n");
    group[num].pol = getch();
    printf ("%c",group[num].pol);
    printf ("\nsledyshii student\n");
    x= getch();
    if (x=='n') break;
    num++;
    }
    i=0;
    u=0;
    while (i<10)
    {
    f=group[i].group;
    if (mas[f][u]!=0) {u++;continue;}
    mas[f][u]=group[i].rost;
    i++;
    u=0;
    }
    f=0;
    while (f<10)
    {
     while(i<10)
     {
      while (u<10)
      {
      if (i==u) u++;
      if (mas[f][i]==mas[f][u]) bl[i]++;
      u++;
      }
     i++;
     }
    f++;
    }
    i=0;
    while (i<10)
    {
    if (bl[i]==0) i++;
    continue;
    printf ("v gruppe %d %d  chelovek odinakovogo rosta",i,bl[i]);
    }
    }
    Помогите, пожалуйста, довести прогу до ума.. Учеба вся неплохо идет, кроме проги..
     
  2. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    velvetdust
    Code:
    while (i<10)
    {
    if (bl[i]==0) i++;
    continue;
    printf ("v gruppe %d %d  chelovek odinakovogo rosta",i,bl[i]);
    }
    Цикл бесконечный получается, если десять раз подряд в массиве bl не будут нули
     
    _________________________
  3. NorB

    NorB Elder - Старейшина

    Joined:
    20 Jul 2007
    Messages:
    109
    Likes Received:
    12
    Reputations:
    -2
    VirtualAlloc

    Есть структура моя их на страницу виртуальной памяти 128 штук умещается код какбы рабочий но одно но когда в функции add условие идет на 2 ветку, где при заполнении страници нужно выделить новую страницу, она невыделяется посмотрите что нетак. Там скорее всего lpPtr+=dwPageSize; вроде все как мсдн даже написал а первый параметр в вирт аллок выходит что неправельный%( я непому почему что нетак...
    Code:
    #include <windows.h>
    #include <stdio.h>              // for printf
    #include <stdlib.h>             // for exit
    #include <conio.h>
    #include <string.h>
    #include <iostream.h>
    #define PAGELIMIT 80            // ask for this many pages
    
    LPTSTR lpNxtPage;               // address of the next page to ask for
    DWORD dwPages = 1;              // count of pages gotten so far
    DWORD count=0;
    DWORD count2=0;
    DWORD dwPageSize;
    LPVOID lpvBase;
    DWORD lpPtr;
    
    struct list {
      char dt[20];
      int x;
      int y;
      int v;
      };
      
    list * arr;
    
    void add(int val1, int val2,int val3, char *val4){
         if(((count2+1)%128)!=0){
         strcpy(arr[count].dt, val4);
         arr[count].x= val1;
         arr[count].y= val2;
         arr[count].v= val3;
         count++;
         count2++;
         printf ("On saime page # %d.\n", dwPages);
                            }else{
                             lpPtr+=dwPageSize;
                             arr=(list*)VirtualAlloc((LPVOID)lpPtr,dwPageSize,MEM_COMMIT,PAGE_READWRITE);
                             
                             if (arr == NULL ){
                             printf("VirtualAlloc failed\n");
                             } else {
                             printf ("Allocating another page.\n");
                             };
    
                             
                             strcpy(arr[count].dt, val4);
                             arr[count].x= val1;
                             arr[count].y= val2;
                             arr[count].v= val3;
                             dwPages++;
                             count++;
                             count2=0;
                             printf ("On new page ¹ %d.\n", dwPages);
                             }
         };
    
    
    int main(int argc, char *argv[])
    {
      SYSTEM_INFO sSysInfo;
      GetSystemInfo(&sSysInfo);     // initialize the structure
      printf ("This computer has page size %d.\n", sSysInfo.dwPageSize);
      printf ("size of struct  %d.\n", sizeof(list));
      dwPageSize = sSysInfo.dwPageSize;
      
      arr=(list*)VirtualAlloc(NULL,PAGELIMIT*dwPageSize,MEM_RESERVE,PAGE_READWRITE);
      arr=(list*)VirtualAlloc(NULL,dwPageSize,MEM_COMMIT,PAGE_READWRITE);
    
      lpPtr=(DWORD)arr;
      printf("vvedite znachenie, stroku, stolbec, tip\n");
      int a,b,c;
      char tipp[20];
      cin>>a>>b>>c>>tipp;
      for (int f=0; f<130; f++){
      add(a,b,c,tipp);
    };
      cout<<arr[130].x<<arr[130].y<<arr[130].v<<arr[130].dt;
      
      system("PAUSE");	
      return 0;
    }
    
     
  4. _Spy_

    _Spy_ New Member

    Joined:
    6 Dec 2008
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Помогите, пожалуйста, с задачкой.

    Взята она с сайта с олимпиадными задачами https://www.spoj.pl/problems/MRECAMAN/
    Суть её следующая.
    Последовательность Recaman-а определена так:

    a0 = 0
    Для m, больших 0:
    a(m) = a(m-1) - m, если эта разность больше нуля и её до этого момента в последовательности не было;
    a(m) = a(m-1) + m, иначе.

    Вот первые несколько членов последовательности:
    0, 1, 3, 6, 2, 7, 13, 20, 12, 21, 11, 22, 10, 23, 9...

    Задание состоит в том, чтобы по введённому порядковому номеру k вывести k-ый член последовательности.

    Вообще, эту задачу мне нужно сдать на Хашкеле, но пока что я хочу сдать её на другом языке, который я знаю чуть получше (ruby, C). И возникла проблема с придумыванием алгоритма, поскольку решение в лоб (в смысле, просто переписать рекуррентное соотношение, ну и добавить поиск по массиву для проверки, встречалось ли число в последовательности ) не годится для больших k (0 <= k <= 500000). Буду очень признателен, если подскажете эффективное решение данной задачи. :)
     
    #1184 _Spy_, 21 Mar 2009
    Last edited: 22 Mar 2009
  5. Alekzzzander

    Alekzzzander Elder - Старейшина

    Joined:
    5 Sep 2007
    Messages:
    278
    Likes Received:
    36
    Reputations:
    0

    помогите пожалуйста
     
    1 person likes this.
  6. mailbrush

    mailbrush Well-Known Member

    Joined:
    24 Jun 2008
    Messages:
    1,997
    Likes Received:
    996
    Reputations:
    155
    Массивы
     
  7. Postal2201

    Postal2201 New Member

    Joined:
    19 Mar 2009
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте товарищи! Помогите пожалуйста сделать програмку для курсовика. Итак нужно:

    1) Выполнить дискретизацию расчетной области в виде четырехугольника заданного координатами вершин:
    A(-2;1) B(1;4) C(4;0) D(2;-1).

    2) Найти узловые неизвестные T(Xi,Yi) по заданному распределению температуры вдоль границы области T(X,Y)=X+2XY+2(X^2)-2(Y^2). Вычислить максимальную абсолютную погрешность полученных результатов.

    3) Построить семейство изотерм.

    Очень желательно на C#, но можно и на C++

    Буду очень признателен!!! ;)
     
  8. botaniQQQ

    botaniQQQ New Member

    Joined:
    15 Jun 2008
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    Голову ломаю ... ребята, поможите ?

    1) На Си нужно написать вычисления частного и остаток от деления двух полиномов размерности N и M, заданные своими коэффициентами.

    2) Дан текст, выяснить является ли этот текст записью вещественного числа по правилу языка Pascal ... (с фиксированной и плавающей точкой).

    Мало верится что эту тему посещают, но всёже надеюсь ...
     
  9. botaniQQQ

    botaniQQQ New Member

    Joined:
    15 Jun 2008
    Messages:
    0
    Likes Received:
    0
    Reputations:
    0
    По баксу за лабу сделаете ?
     
  10. verylagcomp

    verylagcomp New Member

    Joined:
    10 Mar 2009
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    пишу на С++ Builder. Программа должна пинговать разные адреса, а также делать преобразование из числового адреса в буквенный и обратно. Командной строкой пользоваться нельзя (так бы,конечно,использовал nslookup или tracert). Как мне это получить?
    Для пинга использовал IdIcmpClient, но вроде у него нет таких методов и свойств для связи и dns...подскажите,пожалуйста...
     
  11. WiPztin

    WiPztin New Member

    Joined:
    21 Mar 2009
    Messages:
    0
    Likes Received:
    2
    Reputations:
    -6
    [​IMG]
    контрольное задание...создать тест...
    на картинке схема
    буду рад помощи
     
  12. ropestyd

    ropestyd New Member

    Joined:
    25 Feb 2009
    Messages:
    1
    Likes Received:
    1
    Reputations:
    0
    Помогите сделать задание (делфи,консоль),кто реально сделает её с комментариями и объяснит то в долгу не останусь,оплачу работу над ней ;)

    10 раз сгенерировать красно-черное дерево из 1000 случайных узлов, подсчитать среднее количество "поворотов", необходимое для построения такого дерева, среднюю дистанцию между корнем и внешним узлом. Объяснить результаты.


    P.S. можно написать в ПМ либо icq 195810065
     
    1 person likes this.
  13. Ded MustD!e

    Ded MustD!e Banned

    Joined:
    23 Aug 2007
    Messages:
    392
    Likes Received:
    694
    Reputations:
    405
    Кому не лень, нужно написать на C несколько консольных программ, сегодня днем сдавать...:

    1. Написать программу, которая проверяет, является ли введенная строка двоичным числом.
    2. Необходимо составить три программы, которые должны реализовывать задание с помощью одного из трех циклов языка Си. Задать: матрица М размерностью 6х8, вектор В размерностью 8. Сложить поэлементно строки матрицы с вектором. Найти количество положительных элементов в полученной матрице.

    Не знаю я С к сожалению, а сдавать надо)
     
    #1193 Ded MustD!e, 27 Mar 2009
    Last edited: 27 Mar 2009
  14. fker

    fker Member

    Joined:
    26 Nov 2008
    Messages:
    135
    Likes Received:
    64
    Reputations:
    -1
    Ded MustD!e
    Code:
    #include<stdio.h>
    #include<string.h>
    int main()
    {
    char *st;
    int n,flag=1;
    gets(st);
    n=strlen(st);
    for(int i=0; i<n; i++){
       if(st[i]!='1'&&st[i]!='0'){
          flag=0;
          break;
          }
       }
    printf("\n%s\n",flag==1?"Binary":"Not binary");
    return 0;
    }
    
    может кривовастенько реализовал, но работает..
    компилятор BC 3.1
     
    1 person likes this.
  15. fker

    fker Member

    Joined:
    26 Nov 2008
    Messages:
    135
    Likes Received:
    64
    Reputations:
    -1
    Code:
    #include<stdio.h>
    #include<conio.h>
    #include<stdlib.h>
    void main()
    {
    clrscr();
    int M[6][8], B[8],i,j,s=0;
    printf("M :\n");
    for(i=0; i<6; i++){
       for(j=0; j<8; j++){
          M[i][j]=rand()%20-10;
          printf("%2d ",M[i][j]);
          B[j]=rand()%20-10;
          }
       printf("\n");
       }
    printf("\nB:  ");
    for(i=0; i<8; i++)
       printf("%2d ",B[i]);
    //summa
    printf("\n\n");
    for(i=0; i<6; i++){
       for(j=0; j<8; j++){
          M[i][j]+=B[j];
          printf("%3d ",M[i][j]);
          if(M[i][j]>0)
             s++;
          }
       printf("\n");
       }
    printf("\nPolojit elementov : %d",s);
    getch();
    }
    
     
    #1195 fker, 27 Mar 2009
    Last edited: 27 Mar 2009
    1 person likes this.
  16. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    Ну вообщем есть объект такой TStringList называется! У него есть методы LoadFromFile, SaveToFile, еще есть метод LoadFromStream если файл занят! У него есть свойства Count - колво элементов, есть свойство Strings[index] - доступ к отдельным элементам. Нумерация идет с нуля, последний - N-1! Вот я тебе в принципе все рассказал что нужно чтоб твой тест сделать! 0_0
     
  17. KaZ@NoVa

    KaZ@NoVa Elder - Старейшина

    Joined:
    5 Jul 2008
    Messages:
    368
    Likes Received:
    438
    Reputations:
    -16
    Стоимость задания 500 WMR. Если устраивает, то какие сроки выполнения?
     
  18. fker

    fker Member

    Joined:
    26 Nov 2008
    Messages:
    135
    Likes Received:
    64
    Reputations:
    -1
    О_о та в этом разделе фрилансить можна(=
     
  19. sebay

    sebay Member

    Joined:
    9 Mar 2009
    Messages:
    26
    Likes Received:
    22
    Reputations:
    0
    помогите пожалуйста с заданием на чистом С

    1) Геометрия.
    Задано n точек на плоскости. Построить дерево с вершинами в данных точках так,
    чтобы была минимальной суммарная длина его рёбер.

    2) Грамматики, языки и автоматы.
    Задано множество правил подстановки вида v(i)->w(i), где все v(i) и w(i) - слова
    одной и той же длины. Определить, можно ли перевести одно заданное слово в
    другое последовательным применением заданных правил подстановки. Например, если
    имеются правила подстановки ba->ab, cb->bc, ca->ac, то слово cbba переводится в
    слово abbc следующим образом: cbba->cbab->cabb->acbb->abcb->abbc.
     
  20. St0nX

    St0nX Elder - Старейшина

    Joined:
    19 May 2007
    Messages:
    257
    Likes Received:
    46
    Reputations:
    0
    Давно пора. Потому что тут уже под словом "помогите" понимается "сделайте за меня а я сдам" своих усилий 0. Лучше уж за "$" чем за "+".
     
    1 person likes this.
Thread Status:
Not open for further replies.