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

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

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

> типизированные файлы, целочисленные массивы
сообщение
Сообщение #1





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

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


Помогите Люди Добрые!
Дан файл F, элементами которого являються целочисленные массивы a0,a1,a2,a3,a4. Требуеться преобразовать каждый из массивов, заменив элементы с наибольшим значением на 0. Полученные массивы должны быть записаны в тот же самый файл F.
Исходные данные:
5 6 7 4 8
11 8 3 2 1
2 1 -5 -6 -10
-8 2 -9 -2 -1
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Пионер
**

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

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


Вот то, о чем я говорил в моем предыдущем посте. Просто, если разрешено рассматривать а0, а1, а2, а3, а4 как элементы массива, то тогда код можно ужать (сразу вспоминается лекция про соотношение пространства и времени). Думаю, этот вариант будет немного помедленее, но зато более удобно читаемый.

const n=5;
type massive=array [1..n] of integer;
Var f: file of massive;
an: array [0..4] of massive;
i: byte;

procedure createRandomMassive(Var x: massive);
Var i: byte;
Begin
for i:=1 to n do
x[i]:=random (199) - 100;
End;

procedure printMassive (x: massive);
Var i: byte;
Begin
for i:=1 to n do
write (x[i],' ');
writeLn;
End;

function numMaxElMassive (x: massive): byte;
Var i, iMax: byte;
Begin
iMax:=1;
for i:=2 to n do
if x[iMax]<x[i]
then iMax:=i;
numMaxElMassive:=iMax;
End;

BEGIN
assign (f, 'C:\zadacha1.kma');
{---------------------------------------}
{создадим файл и занесем в него массивы}
reWrite (f);
Randomize;
for i:=0 to 4 do
begin
createRandomMassive (an[i]);
write (f, an[i])
end;
close (f);
{-----------------------------------------}
{теперь начинается собвственно твоя программа, все что отделенно
-----------------------------------------
не считать. Это вообще отдельная программа должна быть}
writeLn ('File before:');
reSet (f);
{читаем из файла массив выводим его на экран,
находим максимальный, обнуляем}
for i:=0 to 4 do
begin
read (f, an[i]);
printMassive (an[i]);
an[i][numMaxElMassive (an[i])]:=0;
end;

writeLn ('File after:');
{Теперь стираем все данные из файла и перезаписываем новые массивы}
reWrite (f);
for i:=0 to 4 do
begin
write (f, an [i]);
printMassive (an[i])
end;

close (f);
readLn;
END.



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

Сообщений в этой теме
D-7   типизированные файлы   22.03.2007 3:51
Sozialist   program Project2; {$APPTYPE CONSOLE} uses …   22.03.2007 4:41
Адель   здесь посты на Pascal а не Delphi   22.03.2007 4:46
Sozialist   здесь посты на Pascal а не Delphi Ухах :lol: А …   22.03.2007 4:47
Гость   Sozialist-а в премод... За оскорбление участника ф…   22.03.2007 4:49
Sozialist   Где оскорбление? Учи русский язык, читай словарь Д…   22.03.2007 4:52
мисс_граффити   Sozialist, правила никто не отменял: 4. Не предлаг…   22.03.2007 5:01
КМА   const n=5; type massive=array [1..n] of integer;…   22.03.2007 5:16
Sozialist   А смысл использовать 4 массива? Перегрузка програм…   22.03.2007 5:21
КМА   Вот то, о чем я говорил в моем предыдущем посте. П…   22.03.2007 5:31
Алена   Переменных типа компонента файла столько, сколько …   22.03.2007 5:31
мисс_граффити   Sozialist, а смысл не закрывать файл после записи?   22.03.2007 5:32
Sozialist   Sozialist, а смысл не закрывать файл после записи…   22.03.2007 5:41
Артемий2   Это она не знает!!!?Не смеши! Про …   22.03.2007 5:48
Lapp   Sozialist в премоде на неделю (см.выше) Кончаем ф…   22.03.2007 9:46


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

 





- Текстовая версия 19.04.2024 16:53
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name