2009-06-07 16:47:26 БелДрагМеталл #include <stdio.h> #include <stdlib.h> #include <conio.h> #include <locale.h> #include <string.h> #include "fun.h" #include "struct.h" //чтение int r_list(char* c,list **t,list **h) { FILE* f; if(!(f=fopen(c,"r+b"))) return 0;// открываем файл для чтения rewind(f);//указатель на начало файла while(1) { list *n;//указатель на структуру n=(list*)malloc(sizeof(list));//выделяем память под n if(!(fread(n,sizeof(list),1,f)))//читаем пока есть данные { fclose(f);//закрываем файл return 1; } if(!*h)//если очередь не создавалась { *t=*h=n; } else { (*t)->nx=n;//следующий за последним адресем на новый (*t)=n;//последним становиться новый }; } } int r_floor(char *с,floor **head) { FILE* f; // указатель на файл if(!(f=fopen(c,"r+b"))) return 0; rewind(f); while(1) { floor *n;//указатель на структуру n=(floor*)malloc(sizeof(floor));// выделяем память под n if(!fread(n,sizeof(floor),1,f))//пока есть данные { fclose(f);//иначе закрываем файл return 1; } ; if(*head==NULL)//если кольцо не создано { *head=(floor*)malloc(sizeof(floor)); (*head)->left=(*head)->right=(*head)=(n);// адресуем указатели в этой структуре на саму структуру }else { n->left=(*head); n->right=(*head)->right; (*head)->right->left=n; (*head)->right=n; } } } //запись int w_list(char *с,list **h) { list* n=*h;// n адресуем на первый элемент очереди FILE* f;//указатель на файл if(!(f=fopen(с,"w+b")))//открываем файл для записи { puts("Не возможно открыть файл"); return 0; } if(!*h) { fclose(f);//закрываем файл return 0;//выходим из функции } while(1) { if(n==NULL)//если конец очереди { fclose(f);//закрываем файл return 1; } fwrite(n,sizeof(turn),1,f);//записываем в файл текущий элемент очереди n=n->nx;//к следующему элементу } fclose(f);//закрываем файл return 1; } int w_floor (char *с,floor **head) { floor *n=*head;//n-указывает на голову кольца FILE* f;// указатель на файл if(!(f=fopen(fac,"w+b")))//ткрываем файл для записи { puts("Невозможно открыть файл"); } if(!*head)//если кольцо пустое { fclose(f);//закрываем файл return 0; } do { fwrite(n,sizeof(floor),1,f);//записываем в файл текущий элемент кольца n=n->right; }while(n!=*head); fclose(f); return 1; }; | ||||
2009-06-07 17:13:35 PAYNE Зачем писать на си, если не используется длинная арифметика? | ||||
2009-06-07 17:14:27 БелДрагМеталл PAYNE затем что пишу по учебе практику)) ты лучше скажи зачем писать блок-схемы и алгоритмы по шагам? | ||||
2009-06-07 17:16:42 БелДрагМеталл и это ток 2 из 12 функций( | ||||
2009-06-07 17:31:04 PAYNE
Для таких программ незачем блок-схемы. Но они весьма наглядно и понятно могут объяснить иерархическую структуру б/м крупных проектов. Да и иерархию классов очень удобно представлять в виде блок-схемы, что, собственно говоря, и делают системы, где возможно визуальное проектирование. А вот описание алгоритма по шагам очень полезная вещь, т.к. позволяет строго формализовать придуманный алгоритм. После этого реализация алгоритма на конкретном языке является делом техники.
Процедурное программирование зло Не ходите, дети, в Африку гулять и не пользуйтесь процедурным программированием в объектно-ориентированных языках. | ||||
2009-06-07 17:42:07 БелДрагМеталл PAYNE наоборот кул а вот с блок схемами ничего ен поделать - препад тупой) | ||||
2009-06-07 18:25:18 БелДрагМеталл i:33fun.h(1) : fatal error C1014: too many include files : depth = 1024 | ||||
2009-06-14 19:32:34 ё маё..... | ||||