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

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

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

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

    Joined:
    24 Jul 2007
    Messages:
    129
    Likes Received:
    70
    Reputations:
    -36
    1. Язык? Технолоии? Среда? И т.д. ?
    2. Такие услуги студенты старших курсов, аспиранты, преподаватели и люди которым нечего делать предоставляют за денежное вознаграждение, а вы на халявку хотите?
    3. Студенты-программисты(!), которые лихорадочно ищут себе в интернете спасителя-избавителя от Д/З по информатике(!) достойны отчисления.

    На самом деле - это же ваша специальность. И здесь нет ничего сложного, зачем вы собой места в ВУЗах занимаете, на них мог бы оказаться кто-то, кому это интересно.
     
    1 person likes this.
  2. Loker

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

    Joined:
    25 Oct 2007
    Messages:
    46
    Likes Received:
    23
    Reputations:
    5
    Ребят выручайте, подправьте код плз чтоб работал а то я уже не знаю что делать. ПРога по бинарному дереву.
    Code:
    //---------------------------------------------------------------------------
    
    #pragma hdrstop
    #include <fstream.h>
    #include <stdlib.h>
    #include <string.h>
    #include <time.h>
    #include <iomanip.h>
    #include <iostream.h>
    //---------------------------------------------------------------------------
    const char* filename = "dbase";
    enum Action {INSERT, DEL, INFO};
    enum Dir {LEFT, RIGHT};
    const int l_time = 20, l_type = 40, l_number = 12;
    
    struct Fine{
    char time[l_time];
    char type[l_type];
    float price;
    Fine* next;
    };
    
    struct Node {
    char number[l_number];
    Fine* beg;
    Node* left;
    Node* right;
    };
    
    struct Data {
    char number[l_number];
    char time[l_time];
    char type[l_type];
    float price;
    };
    
    Node* descent(Node* p);
    Node* first(Data data);
    Data input(Action action);
    int menu();
    void print_node(const Node& node);
    void print_dbase(Node* p);
    Node* read_dbase(char* filename);
    int read_fine(ifstream f, Data& data);
    int remove_fine(Node* p,const Data& data);
    void remove_fines(Node* p);
    Node* remove_node(Node* root, Node* p, Node* parent, Dir dir);
    Node* remove_tree(Node* p);
    Node* search_insert(Node* root, const Data& data, Action action, Dir& dir, Node*& parent);
    void write_dbase(ofstream f,const Node* root);
    void write_node(ofstream f, const Node& node);
    int main(int argc, char* argv[])
    {
    Node* p, *parent;
    Node* root = read_dbase(filename);
    ofstream fout;
    
    Dir dir;
    while (true){
    switch (menu()){
    case 1:
    if(!root) root = first(input(INSERT));
    else search_insert(root, input(INSERT), INSERT, dir, parent);
    break;
    case 2:
    if(!root){cout << "ÁÀçà ïóñòà" << endl; break;}
    
    Data data = input(DEL);
    if (!(p=search_insert(root, data, DEL, dir, parent)))
    cout << "Ñâåäåíèÿ îá à/ì îòñóòñòâóþò" << endl;
    else
    if (remove_fine(p, data) == 2
    root = remove_node(root, p, parent, dir);
    break;
    case 3;
    if(!root){ cout << "Áàçà ïóñòà" << endl; break;}
    
    if(!(P =search_insert(root, input(INFO), INFO, dir, parent)))
    cout << "Ñâåäåíèÿ îòñóòñòâóþò" << endl;
    break;
    case 4:
    fout.open(filename);
    if(!fout.is_open()) {
    cout << "Îøèáêà îòêðûòèÿ ôàéëà " << filename << endl; return 1;
    }
    write_dbase(fout, root);
    return 0;
    
    case 5:
    print_dbase(root);
    break;
    default;
    cout << "Íàäî ââîñäèòü ÷èñëî îò 1 äî 4"<< endl;
    break;
    }
    }
    return 0;
    }
    
    Node* descent(Node* p){
    Node* prev, *y = p->right;
    if(!y->left) y->left = p->left;
    else{
    do{ prev = y; t=t->left;}
    while(y->left);
    y->left =p->left;
    prev->left = y->right;
    y->right = p->right;
    }
    return y;
    }
    Node* first(Data data){
    Fine* beg = new Fine;
    strncpy(beg->time, data.time, l_time);
    strncpy(beg->type, data_type, l_type);
    beg->price = data.price;
    beg->next=0;
    Node* root = new Node;
    strncpy(root->number, data.number, l_number);
    root->beg =beg;
    root->left=root->right=0;
    }
    
    Data input(Action action){
    Data data;
    char buf[10], temp[3], temp2[3];
    int day, month, hour, min;
    cout << "Ââåäèòå íîìåð à/ì" << endl;
    cin.getline(data.number, l_number);
    if(action == INFO) return data;
    
    do{
    cout << "Ââåäèòå äàòó íàðóøåíèÿ â ôîðìàòå ÄÄ.ÌÌ,ÃÃ " <<endl;
    cin >>buf;
    strncpy(temp1, buf, 2); strncpy(temp2, &buf[3], 2)'
    day = atoi(temp1); month = atoi(temp2);
    }
    while (!(day > 0 & day < 32 && month > 0 && month < 13));
    
    strcpy(data.time, buf); strcat(data.time. " ");
    
    do{
    cout << "Ââåäèòå âðåìÿ íàðóøåíèÿ â ôîðìàòå ××:ÌÌ :" << endl;
    cin >>buf;
    strncpy(temp1, buf, 2); strncpy(temp2, &buf[3], 2)'
    hour = atoi(temp1);
    min = atoi(temp2);
    }
    while (!(hour >= 0 && hour < 24 && min >=0 && min < 60 ));
    
    strcat(data.time, buf);
    cin.get();
    if (action == DEL) return data;
    
    cout << "Ââåäèòå òèï íàðóøåíèÿ type" << endl;
    cin.getline(data.type, l_type);
    
    do{cout << "Ââåäèòå ðàçìåðû øòðàôà:" << endl;
    cin >> buf;
    }
    while (!(data.price = (float)atof(buf)));
    cin.get();
    return data;
    }
    int menu(){
    char buf[10];
    int option;
    do{
    cout << "============================" << endl;
    cout << "1 -Ââîä ñâåäåíèé î íàðóøåíèè" << endl;
    cout << "2 -Ââîä ñâåäåíèé îá îïëàòå øòðàôà" << endl;
    cout << "3-Ñïðàâêà";
    cout << "4-Âûõîä" << endl;
    cout << "============================" <<endl;
    
    cin >> buf;
    option = atoi(buf);}
    while(!option);
    cin.get();
    return option;
    }
    void print_node(const Node& node){
    cout << "Íîìåð à/ì " << node.number << endl;
    Fine* pf = node.beg;
    float summa = 0;
    while (pf){
    cout << "Âèä íàðóøåíèÿ " << pf->type << endl;
    cout << "Äàòà è âðåìÿ " << pf-time;
    cout << " Ðàçìåð øòðàôà " << pf->price <<endl;
    }
    
    void print_dbase(Node* p){
    if(p){
    print_node(*p);
    print_dbase(p->left);
    print_dbase(p->right);
    }
    }
    Node * read_dbase (char* filename) {
    Node * parent;
    Dir dir;
    Data data;
    ifstream f(filename, ios::in| ios::nocreate);
    if(!f) {
    cout << "Íåò ôàéëà" << filtname << endl; return0;}
    
    f.getline(data.number, l_number);
    if(f.eof()) { cout << "Ïóñòîé ôàéë" << endl; return 0;}
    read_fine(f, data);
    Node* root = first(data);
    while (!read_fine(f, data))
    search_insert( root, data, INSERT, dir, parent);
    
    while (f, getline(data, number, l_number)){
    read_fine(f, data);
    search_insert(root, data, INSERT, dit, parent);
    }
    return root;
    }
    
    int read_fine(ifstream f, Data& data){
    f.getline(data.time, l_time);
    if(data.time[0] == '=') return 1;
    f.getline(data.type, l_type);
    f->>data.price;
    f.get();
    return 0;
    }
    
    int remove_fine(Node * p, const Data& data){
    Fine* prev, *pf = p->beg;
    bool found = false;
    while (pf && !found){
    if(!strcmp(pf->time,data.time))
    found = true;
    else {
    prev = pf;
    pf = pf->next;
    }
    }
    if (!found){
    cout << "Ñâåäåíèÿ î íàðóøåíèè îòñóòñòâóþò." << endl;
    return 1;
    }
    if(pf == p->beg)
    p->beg = pf->next;
    else
    prev->next = pf->next;
    delete pf;
    if (!p->beg) return 2;
    return 0;
    }
    Node* remove_node(Node* root, Node* parent, Dir dir){
    Node *y;
    if (!p->left) y=p->right;
    else if (!p->right) y = p->left;
    else y=descent(p);
    if (dir == LEFT) parent->left = y;
    else parent->right = y;
    }
    delete p;
    return root;
    }
    Node* search_insert(Node* root, const Data& data, Action action, Dir& dir, Node*& parent){
    Node* p =root;
    bool found = false;
    int cmp;
    parent = 0;
    while (p && !found){
    cmp = strcmp(data.number, p->number);
    if(!cmp) found = true;
    else{
    parent = p;
    if (cmp < 0) { p=p->left; dir = LEFT;}
    else { p = p->right; dir = RIGHT;}
    }
    }
    if (action !=INSERT) return p;
    
    Fine* pf = new Fine;
    strncpy(pf->time, data.time, l_time);
    strncpy(pf->type, data.type, l_type);
    pf->price = data.price;
    pf->next =0;
    
    if (!found){
    p= new Node;
    strncpy(p->number, data.number, l_number);
    p->beg = pf;
    p->left = p->right = 0;
    if(dir == LEFT)
    parent->left = p;
    else
    parent->right =p;
    }
    else {
    Fine* temp = p->beg;
    while (temp->next) temp = temp->next;
    temp->next= pf;
    }
    return p;
    }
    void write_dbase(ofstream f, const Node *p) {
    if(p){
    write_node(f, *p);
    write_dbase( f, p->left);
    write_dbase (f, p->right);
    }
    }
    void write_node(ofstream f, const Node& node){
    f << node.number << endl;
    Fine* pf = node.beg;
    while{pf}{
    f << pf->time << endl <<pf->type <<endl << pf->price << endl;
    pf =pf->next;
    }
    f<< "=" <<endl;
    
    
            return 0;
    }
    //-------------------------------
     
    #382 Loker, 18 Apr 2008
    Last edited: 19 Apr 2008
  3. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Мог бы хоть написать какой язык программирования....
    И думаю на врядли кто возьмется за это просто так....
    Этот сайт не по решению домашних заданий....
     
  4. Ivanich

    Ivanich New Member

    Joined:
    19 Mar 2008
    Messages:
    3
    Likes Received:
    0
    Reputations:
    0
    кому не лень помочь

    язык С++.
     
  5. advokat.holy

    advokat.holy New Member

    Joined:
    5 Mar 2008
    Messages:
    11
    Likes Received:
    1
    Reputations:
    0
    Люди помогите..... ПЛЛЛЗЗЗЗзззз!

    Вот текст программы
    #include <conio.h>
    #include <stdio.h>
    #include <stdlib.h>
    #define n 10
    #define IA for(i=0; i<n; i++)
    void _max(int *a, int *max, int *imax);
    void _min(int *a, int *min, int *imin);
    void _SrAr(int *a, float *SrAr);
    void main()
    {
    int a[n], max, imax,i;
    int min, imin;
    float SrAr;
    randomize();
    IA
    a=random(10);
    printf("Zgenerovanuy masuv e takum:\n");
    IA
    printf("%d",a);
    puts("");
    _max(a, &max, &imax);
    printf("max=%d\n imax=%d\n",max,imax+1);
    _min(a, &min, &imin);
    printf("min=%d\n imin=%d\n", min,imin+1);
    _SrAr(a, &SrAr);
    printf("Seredne arufmetu4ne=%f", SrAr);
    getch(); clrscr();
    }
    void _max(int *a, int *max, int *imax)
    {
    int i;
    *max=a[0];
    IA
    if (*max<a)
    {
    *max=a;
    *imax=i;
    }
    }
    void _min(int *a, int *min, int *imin)
    {
    int i;
    *min=a[0];
    IA
    if (a<*min)
    {
    *min=a;
    *imin=i;
    }
    }
    void _SrAr(int *a, float *SrAr)
    {
    int k,i;
    k=0;
    SrAr=0;
    IA
    if (a<0)
    {
    SrAr+=a;
    k++;
    }
    if (k>0)
    SrAr/=k;
    }
    Язык С, программа находит максимальный, минимальный, и их последовательные номера, да и еще среднее арифметическое сгенерированого массива.
    Но она не паше тдоходит до SrAr/=k; Останавливаесться на к и компилятор арет Illegal use of pointer. Я понимая что что-то не так с указетелем, неправильное использование, но что? ПОМОГИТЕ Плз. Глюк токо в последней фу-и _SrAr.
     
  6. criz

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

    Joined:
    4 Nov 2007
    Messages:
    293
    Likes Received:
    40
    Reputations:
    6
    Code:
      if (k>0)
        *SrAr/=k;
    
    
     
  7. WinTREI

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

    Joined:
    14 Mar 2008
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    Задачи по Паскалю

    2 лабы по массивам

    1) Даны целочисленные массивы X и Y с разным количеством элементов. Найти
    максимальные элементы в этих массивах среди элементов, имеющих нечетный
    индекс. Ввод массивов выполнять в процедуре, а нахождение максимального
    элемента - в функции.

    2) Дан массив целых чисел. Получить новый массив из первоначального,
    отбросив все нулевые элементы в этом массиве.
    Также используя процедуры и функции

    Помогите плиз, срочно надо, самому мне долго разбераться
     
  8. lll6

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

    Joined:
    29 Feb 2008
    Messages:
    83
    Likes Received:
    15
    Reputations:
    5
    2)
    Code:
    program vtoraia;
    const n=10;
    var x,t:integer; a,b:array [1..n] of integer;
    begin
    t:=1;
     for x:=1 to n do
      a[x]:=random (100);
     for x:=1 to n do
       if a[x]<>0 then begin b[t]=a[x]; t:=t+1; end;
     for x:=1 to t do
      writeln (b[x],' ');
      readln
    end.
     
  9. WinTREI

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

    Joined:
    14 Mar 2008
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    спасибо конечно, но хотелось бы через процедуры и функции, там сложнее ><
     
  10. lll6

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

    Joined:
    29 Feb 2008
    Messages:
    83
    Likes Received:
    15
    Reputations:
    5
    Как умею) Главное что бы работала:)
     
  11. WinTREI

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

    Joined:
    14 Mar 2008
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    с меня то будут полную требывать :rolleyes:
     
  12. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    У тебя ошибка:
    Code:
      if a[x]<>0 then begin b[t]=a[x]; t:=t+1; end;
    Точнее:
    Code:
    then begin b[t]=a[x]
    Там не "=" там ":=":)


    Еще посмотри на свой код:


    Code:
    begin
    t:=1;
     for x:=1 to n do
      a[x]:=random (100);
     for x:=1 to n do
       if a[x]<>0 then begin b[t]=a[x]; t:=t+1; end;
     for x:=1 to t do
      writeln (b[x],' ');
      readln
    end.
    Точнее:
    ЗАЧЕМ ТЫ ПИШЕШЬ ТАК:
    Code:
    if a[x]<>0 then begin b[t]=a[x]; t:=t+1; end;
    Этот цикл( for x:=1 to t do
    writeln (b[x],' ');
    )
    Длится не до t, а до t-1;
     
    #392 De-visible, 22 Apr 2008
    Last edited: 22 Apr 2008
  13. lll6

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

    Joined:
    29 Feb 2008
    Messages:
    83
    Likes Received:
    15
    Reputations:
    5
    Гы, точно, пропустил. Каюсь :p
     
  14. De-visible

    De-visible [NDC] Network develope c0ders

    Joined:
    6 Jan 2008
    Messages:
    916
    Likes Received:
    550
    Reputations:
    66
    Ничего сложного там нет:)
    Вот по его примеру составил функцию:

    Code:
    program MasSiv;
    [B]Function Massiv(a:array of integer;n:integer):string;[/B]{Это и есть наша функция:)}
    var x,t:integer;
    b:array [1..500] of integer;
    begin
    t:=1;
     for x:=1 to n do
      a[x]:=random (20);
     for x:=1 to n do
       if a[x]<>0 then
       begin
        b[t]:=a[x];
        [COLOR=Green][B]inc(t);{тоже самое что и t:=t+1}[/B][/COLOR]
       end;
    [COLOR=DarkGreen] [B]for x:=1 to n do
      write (a[x],'  ');{Выводим исходный массив(для сравнения)}[/B] [/COLOR]
      Writeln;
      Writeln;
    [COLOR=DarkGreen] [B]for x:=1 to t-1 do
      write (b[x],'  ');{Выводим полученный массив}[/B][/COLOR]
    [I]  readln;[/I]
    end;
    [B]const n=20[/B];{n элементов в массиве}
    var
    a:array [1..n] of integer;
    begin
      Massiv(a,n);{Используем нашу функцию:)}
    end.
    
    
     
    #394 De-visible, 22 Apr 2008
    Last edited: 22 Apr 2008
  15. krypt3r

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

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    De-visible, не совсем условию соответствует
    Еще вариант.
    Задача 1
    Code:
    program Zodacha_one;
    
    const
      XSize = 5;
      YSize = 11;
    
    procedure fillmassive (numel : integer; var a : array of integer);
    var
      i : integer;
    begin
      randomize;
      for i := 0 to numel - 1 do
        a[i] := Random (100);
    end;
    
    function getmax (numel : integer; a : array of integer) : integer;
    var
      i, max : integer;
    begin
      i := 0;
      max := a[i];
      while i < numel do begin
        if a [i] > max then
          max := a [i];
        i := i + 2;
      end;
      getmax := max;
    end;
    
    var
      x : array [1..XSize] of integer;
      y : array [1..YSize] of integer;
      i, max : integer;
    
    begin
      fillmassive (XSize, x);
      for i := 1 to XSize do
        write (x[i], ' ');
      writeln;
      max := getmax (XSize, x);
      writeln ('Max = ', max);
    
      fillmassive (YSize, y);
      for i := 1 to YSize do
        write (y[i], ' ');
      writeln;
      max := getmax (YSize, y);
      writeln ('Max = ', max);
    end.
    
    Задача 2
    Code:
    program ZodachaTwo;
    
    const
      Size = 30;
    
    type
      TMassive = array [0..Size - 1] of integer;
    
    procedure FillMassive (numel : integer; var a : TMassive);
    var
      i : integer;
    begin
      Randomize;
      for i := 0 to numel - 1 do
        a[i] := Random (10);
    end;
    
    function NotNullCount (numel: integer; a : TMassive) : integer;
    var
      i, cnt : integer;
    begin
      cnt := 0;
      for i := 0 to numel - 1 do
        if a[i] <> 0 then
          cnt := cnt + 1;
      NotNullCount := cnt;
    end;
    
    function DropNulls (numel : integer; a : TMassive) : TMassive;
    var
      i, j : integer;
      t : TMassive;
    begin
      i := 0;
      j := 0;
      while i < numel do begin
        if a [i] <> 0 then begin
          t[j] := a [i];
          j := j + 1;
        end;
        i := i + 1;
      end;
      DropNulls := t
    end;
    
    var
      x, y : TMassive;
      i, count : integer;
    
    begin
      FillMassive (Size, x);
      for i := 0 to Size - 1 do
        write (x[i], ' ');
      writeln;
      y := DropNulls (Size, x);
      count := NotNullCount (Size, x);
      for i := 0 to count - 1 do
        write (y[i], ' ');
      writeln;
    end.
    
     
    #395 krypt3r, 23 Apr 2008
    Last edited: 23 Apr 2008
  16. WinTREI

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

    Joined:
    14 Mar 2008
    Messages:
    31
    Likes Received:
    0
    Reputations:
    0
    krypt3r, спасибо большое :D
     
  17. rubik-nerubik

    rubik-nerubik Elder - Старейшина

    Joined:
    4 May 2007
    Messages:
    248
    Likes Received:
    9
    Reputations:
    -2
    pascal

    Добрый вечер, вот собственно возникла проблема, курсовая , а я понимаю только Php"Написать программу, которая решает задачу резервирования оборудования сети. Номера аварийных узлов вводятся с клавиатуры," даже не понимаю в каком направлении идти.
     
  18. zythar

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

    Joined:
    16 Feb 2008
    Messages:
    517
    Likes Received:
    109
    Reputations:
    5
    дак напиши на РНР потом переведи на паскаль что ли?
    главное разобраться в алгоритме
     
  19. rubik-nerubik

    rubik-nerubik Elder - Старейшина

    Joined:
    4 May 2007
    Messages:
    248
    Likes Received:
    9
    Reputations:
    -2
    так я написал, что понятия не имею с чего начинать, а так нужно на паскале))))
     
  20. Bert_HoL

    Bert_HoL New Member

    Joined:
    1 Sep 2007
    Messages:
    8
    Likes Received:
    2
    Reputations:
    0
    ааа...НАРОД помогите пожалуйста,буду настолько МЕГА благодарен!... =)))

    " программf решающая квадратное уравнение ax(в квадрате) + bx+c=0
    каэф abc что бы вводились с клавиатуры.
    "

    В ПАСКАЛЕ...
    Очень прошу! =)
    Зараннее благодарен.
     
    #400 Bert_HoL, 23 Apr 2008
    Last edited: 24 Apr 2008
Thread Status:
Not open for further replies.