IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> файлы+динамическая память, использование дин. памяти при работе с несколькими файлами
Renbo
сообщение 9.04.2007 19:34
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


Имеется 2 файла справочника и один файлик основной. Необходимо сформировать ведомости. Первая ведомость формируется как надо, тоесть как мне надо ). А вот вторая в последнем столбике Количество Струдников не прописывает их количество. Код написан, вроде должно работать, а не тут-то было. Вот в этом файле Прикрепленный файл  Vedomosti.pas ( 12.69 килобайт ) Кол-во скачиваний: 499
- процедуры по формированию ведомостей. Прикрепленный файл  spravka1.txt ( 229 байт ) Кол-во скачиваний: 326
- первый справочник(текстовый). Прикрепленный файл  ___________________2.rar ( 541 байт ) Кол-во скачиваний: 294
- основной фаил и второй справочник(оба они типизированные).



Но может вы и без этого увидите как исправить процедуру по созданию второй ведомости.
Заранее благодарен.


Сообщение отредактировано: Renbo - 9.04.2007 19:45
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 10.04.2007 23:09
Сообщение #2


Гость






Цитата
Что-то я не понимаю как организовать цикл, при этом не выходя за границы памяти выделенной под массив Z...

const
z_size = 6;
type
x_arr = array[1 .. z_size] of record
code: string;
count: integer;
end;
z_arr = array[1 .. z_size] of string;

var
x: x_arr;
i, k, p: integer;
const
z: z_arr = ('01', '01', '02', '03', '03', '03');


begin
k := 0;

i := 1;
while i <= z_size do begin
p := 1; inc(i);
while z[i] = z[i - 1] do begin
inc(p); inc(i);
end;

inc(k);
x[k].code := z[i - 1];
x[k].count := p;
end;


for i := 1 to k do begin
writeln(x[i].code, ' : ', x[i].count);
end;

end.


Идея понятна?

Добавлено через 1 мин.
А вообще-то, по-хорошему, тебе бы надо пересмотреть структуру программы...

Сообщение отредактировано: volvo - 10.04.2007 23:10
 К началу страницы 
+ Ответить 
Renbo
сообщение 10.04.2007 23:26
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 86
Пол: Мужской

Репутация: -  0  +


Да, спасиб, всё ясно стало smile.gif
Токо вот теоритически алгорит правельный, а считает не то почему-то...

Прикрепленное изображение - вот тут первый столбик - это рассчпечатка z[i].CodeOTD, а второй, ниже, там где через двоеточие, это сформировавшийся массив X. Как видно - считает почему-то не то....Не понимаю...



║ reset(osnov);
║ t:=filesize(osnov);
║ getmem(z,t*sizeof(Zap));
║ getmem(x,t*sizeof(HZ));
║ k:=0;
║ while not(eof(osnov)) do
║ begin
║ read(osnov,Zap);
║ inc(k);
║ z^[k]:=zap;
║ end;
║ close(osnov);
║ k:=0;
║ reset(osnov);
║ while not(eof(osnov)) do
║ begin
║ read(osnov,Zap);
║ inc(k);
║ x^[k]:=helpzap;
║ end;
║ close(osnov);
║ k:=0;
║ i:=1;
║ while i <= t do
║ begin
║ p:=1;
║ inc(i);
║ while z^[i].CodeOTD = z^[i-1].CodeOTD do
║ begin
║ inc(p);
║ inc(i);
║ end;
║ inc(k);
║ x^[k].CODEOTDELA:= z^[i-1].CodeOTD;
║ str(p,x^[k].TAB);
║ end;

║ For i:=1 to t do
║ writeln(z^[i].CodeOTD);
║ writeln;
║ For i:=1 to k do
║ writeln(x^[i].CODEOTDELA,' : ',x^[k].TAB);



Что не так-то? wacko.gif

Сообщение отредактировано: Renbo - 11.04.2007 0:12
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.06.2025 2:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"