Оо


гильдия Мудрецы (Мастер)[10168] гильдия Бойцы (Грандмастер)[12824] Топ Клан (Магистр - Глава) БелДрагМеталл Информация
Назад к темам раздела.
2009-06-07 16:47:26 гильдия Мудрецы (Мастер)[10168] гильдия Бойцы (Грандмастер)[12824] Топ Клан (Магистр - Глава) БелДрагМеталл Информация
#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 гильдия Столичные Шахтеры (Элита)[167881] гильдия Бойцы (Адепт)[548] Орда Орков (Пялельщик - Ржавый набалдажник) PAYNE Информация
Зачем писать на си, если не используется длинная арифметика?
 
2009-06-07 17:14:27 гильдия Мудрецы (Мастер)[10168] гильдия Бойцы (Грандмастер)[12824] Топ Клан (Магистр - Глава) БелДрагМеталл Информация
PAYNE
затем что пишу по учебе практику))

ты лучше скажи зачем писать блок-схемы и алгоритмы по шагам?
 
2009-06-07 17:16:42 гильдия Мудрецы (Мастер)[10168] гильдия Бойцы (Грандмастер)[12824] Топ Клан (Магистр - Глава) БелДрагМеталл Информация
и это ток 2 из 12 функций(
 
2009-06-07 17:31:04 гильдия Столичные Шахтеры (Элита)[167881] гильдия Бойцы (Адепт)[548] Орда Орков (Пялельщик - Ржавый набалдажник) PAYNE Информация
БелДрагМеталл писал(а):
ты лучше скажи зачем писать блок-схемы и алгоритмы по шагам?

Для таких программ незачем блок-схемы. Но они весьма наглядно и понятно могут объяснить иерархическую структуру б/м крупных проектов. Да и иерархию классов очень удобно представлять в виде блок-схемы, что, собственно говоря, и делают системы, где возможно визуальное проектирование.
А вот описание алгоритма по шагам очень полезная вещь, т.к. позволяет строго формализовать придуманный алгоритм. После этого реализация алгоритма на конкретном языке является делом техники.
БелДрагМеталл писал(а):
и это ток 2 из 12 функций(

Процедурное программирование зло
Не ходите, дети, в Африку гулять и не пользуйтесь процедурным программированием в объектно-ориентированных языках.
 
2009-06-07 17:42:07 гильдия Мудрецы (Мастер)[10168] гильдия Бойцы (Грандмастер)[12824] Топ Клан (Магистр - Глава) БелДрагМеталл Информация
PAYNE
наоборот кул

а вот с блок схемами ничего ен поделать - препад тупой)
 
2009-06-07 18:25:18 гильдия Мудрецы (Мастер)[10168] гильдия Бойцы (Грандмастер)[12824] Топ Клан (Магистр - Глава) БелДрагМеталл Информация
i:33fun.h(1) : fatal error C1014: too many include files : depth = 1024
 
2009-06-14 19:32:34 Информация
ё маё.....