Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Delphi, Kylix and Pascal


Ответ
 
Опции темы Опции просмотра
Старый 02.03.2009, 18:55   #1 (permalink)
юра 3
Новичок
 
Регистрация: 30.12.2008
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Типизированные файлы

Помогите исправить задачу пожалуйста:

Даны три файла целых чисел одинакового размера с именами NameA, NameB и NameC. Создать новый файл с именем NameD, в котором чередовались бы элементы исходных файлов с одним и тем же номером: A0, B0, C0, A1, B1, C1, A2, B2, C2, ... .

program laba12;
uses crt;
var a,b,c,d:file of integer;
x,p,i,q,w,e:integer;

begin
clrscr;
assign(a,'NameA.dat');
rewrite(a);
assign(b,'NameB.dat');
rewrite(b);
assign(c,'NameC.dat');
rewrite(c);
assign(d,'NameD.dat');
rewrite(d);

randomize;
for i:=1 to 10 do
begin
q:=random (10)-5;
p:=random (10)-2;
write(a,p);
end;

write(b,w);
write(c,e);
close(a);close(b);close(c);
reset(a);reset(b);reset(c);

While not eof(a) and not eof(b) and not eof (c) do
begin
read(a,p);
write(d,p);
read(b,p);
write(d,p);
read(c,p);
write(d,p)
end;
close(a);
close(b);
close(c);
close(d);
reset(d);
while not eof(d) do
begin
read(d,x);
write(x);
end;}
readln;
end.
юра 3 вне форума   Ответить с цитированием

Старый 02.03.2009, 18:55
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Можно узнать множество полезной информации перейдя по этим ссылкам

Файлы
Файлы
Списки и типизированные файлы.
Типизированные файлы. Delphi
Паскаль, типизированные файлы
Blu ray файлы

Старый 02.03.2009, 19:27   #2 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Вместо
Цитата:
for i:=1 to 10 do
begin
q:=random (10)-5;
p:=random (10)-2;
write(a,p);
end;
write(b,w);
write(c,e);
наберите
Код:
for i:=1 to 10 do
   begin
   q:=random (10)-5;
   p:=random (10)-2;
g:=random (10)-2;
   write(a,p);
write(b,q);
      write(c,g);
   end;
и не забудьте определить типы соответствующих переменных в разделе var (можно еще упростить решение)

В первом цикле While достаточно оставить только один критерий, так как по условию задачи все исходные файлы одинакового размера.

Также стоит убрать фигурную скобку после end; в конце программы
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 02.03.2009, 21:04   #3 (permalink)
юра 3
Новичок
 
Регистрация: 30.12.2008
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Вот сделал ну все ровно что-то не так

program laba12;
uses crt;
var a,b,c,d:file of integer;
x,p,i,q,w,e,g,n:integer;

begin
clrscr;
assign(a,'NameA.dat');
rewrite(a);
assign(b,'NameB.dat');
rewrite(b);
assign(c,'NameC.dat');
rewrite(c);
assign(d,'NameD.dat');
rewrite(d);
write('vved n=');
readln(n);
randomize;
for i:=1 to 10 do
begin
q:=random (10)-5;
p:=random (10)-2;
g:=random (10)-2;
write(a,p);
write(b,q);
write(c,g);
end;

write(b,w);
write(c,e);
close(a);close(b);close(c);
reset(a);reset(b);reset(c);

While not eof(a) and not eof(b) and not eof (c) do
begin
read(a,p);
write(d,p);
read(b,p);
write(d,p);
read(c,p);
write(d,p)
end;
close(a);
close(b);
close(c);
close(d);
reset(d);
while not eof(d) do
begin
read(d,x);
write(x, ' ');
end;
readln;
end.
юра 3 вне форума   Ответить с цитированием
Старый 02.03.2009, 21:53   #4 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от юра 3 Посмотреть сообщение
Вот сделал ну все ровно что-то не так

program laba12;
uses crt;
var a,b,c,d:file of integer;
x,p,i,q,w,e,g,n:integer;

begin
clrscr;
assign(a,'NameA.dat');
rewrite(a);
assign(b,'NameB.dat');
rewrite(b);
assign(c,'NameC.dat');
rewrite(c);
assign(d,'NameD.dat');
rewrite(d);
write('vved n=');
readln(n);

randomize;
for i:=1 to 10 do
begin
q:=random (10)-5;
p:=random (10)-2;
g:=random (10)-2;
write(a,p,' ');
write(b,q,' ');
write(c,g,' ');
end;

write(b,w);
write(c,e);

close(a);close(b);close(c);
reset(a);reset(b);reset(c);

While not eof(a) and not eof(b) and not eof (c) do
begin
read(a,p);
write(d,p,' ');
read(b,p);
write(d,p,' ');
read(c,p);
write(d,p,' ')
end;
close(a);
close(b);
close(c);
close(d);
reset(d);
while not eof(d) do
begin
read(d,x);
write(x, ' ');
end;
close(d);
readln;
end.
Это убрать (зачем оно там - непонятно; возможно, ошметки других вариантов), это добавить, чтобы числа не слеплялись.
P.S. Пожелание на будущее - более осмысленно выбирать идентификаторы. Например, насколько читабельнее была бы программа, если файлы назвать, например, f1, f2, f3, f4, а числа, соответственно, - a1, a2, a3, a4, ну или как-нибудь в этом роде. А то у Вас что файлы, что числа - a, b, c, p, q и т.п.
Vladimir_S вне форума   Ответить с цитированием
Старый 03.03.2009, 21:36   #5 (permalink)
юра 3
Новичок
 
Регистрация: 30.12.2008
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Всё равно она не правильно работает,помогите доделать плиз,уж очень срочно надо.
юра 3 вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 03.03.2009, 21:49   #6 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от юра 3 Посмотреть сообщение
Всё равно она не правильно работает,помогите доделать плиз,уж очень срочно надо.
А, прошу прощения - не досмотрел, что файлы у Вас типа file of Integer а не Text, как я привык. В таком случае уберите все синие вставки
(,' '), кроме последней (close(d)). Всё заработает.
Vladimir_S вне форума   Ответить с цитированием
Старый 03.03.2009, 22:37   #7 (permalink)
юра 3
Новичок
 
Регистрация: 30.12.2008
Сообщений: 9
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Я всё исправил,она работает,но выводит ерунду,набор цифр каких-то.
юра 3 вне форума   Ответить с цитированием
Старый 03.03.2009, 22:51   #8 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

Цитата:
Сообщение от юра 3 Посмотреть сообщение
Я всё исправил,она работает,но выводит ерунду,набор цифр каких-то.
А Вы чего ожидали? Песенку Трех Поросят?
Vladimir_S вне форума   Ответить с цитированием
Старый 04.03.2009, 17:02   #9 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 15,797
Записей в дневнике: 71
Сказал(а) спасибо: 166
Поблагодарили 203 раз(а) в 86 сообщениях
Репутация: 75760
По умолчанию

Цитата:
Даны три файла целых чисел одинакового размера с именами NameA, NameB и NameC. Создать новый файл с именем NameD, в котором чередовались бы элементы исходных файлов с одним и тем же номером
Внимательно прочитайте исходное задание и поймете, что вам дано три файла из чисел, которые вы генерируете случайным образом, а нужно получить файл из чисел, которые содержатся в сгенерированных вами трех файлах.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 04.03.2009, 17:41   #10 (permalink)
ummasha
Member
 
Аватар для ummasha
 
Регистрация: 24.12.2008
Сообщений: 419
Записей в дневнике: 4
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1311
По умолчанию

И у меня программа стала работать, но после того, как я убрала все ' '. Иначе выдавала ошибку: нельзя преобразовать тип char к типу integer.
ummasha вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 11:07.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.