Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Помогите пожалуйста с задачкой!

Автор: Arel 28.03.2007 4:16

Здравствуйте! Помогите пожалуйста с задачкой!
Создать числовой файл F, найти максимальный элемент, среди компонент на чётных позициях файла.
Все нулевые заменить на максимальный. Преобразованный файл распечатать.
Заранее спасибо!!!!!!!!!!!

Автор: mamont001 28.03.2007 4:20

А что тебе непонятно:

•как файл печатать?
•как с файлами работать?
•как найти макс. элемент?
•как элементы менять?

Автор: Гость 28.03.2007 4:23

Цитата(mamont001 @ 28.03.2007 0:20) *

А что тебе непонятно:

•как файл печатать?
•как с файлами работать?
•как найти макс. элемент?
•как элементы менять?

Мне не понятно как найти максимум

Автор: mamont001 28.03.2007 4:27

делается таким способом: берётся масив, загоняються парные элементы и ищется максимум.
Как искать максимум в масиве ты можеш узнать через поиск.

Автор: Arel 28.03.2007 4:31

В смысле парные элементы? И как из них сделать массив?

Автор: mamont001 28.03.2007 4:31

http://forum.pascal.net.ru/index.php?showtopic=1212&hl=%EC%E0%EA%F1%E8%EC%E0%EB%FC%ED%FB%E9+%E5%EB%E5%EC%E5%ED%F2
вот отсюда можна выковырять макс.

Добавлено через 6 мин.
Извиняюсь, перепутал, не парные а чётные ,хоть разницы особой нету.

считывать из файла умеешь?
так вот, береш каждый парный елемент и суешь его в масив.
С масивами работала?

 ! 
mamont001,
будешь менять содержимое того, что тебе менять не полагается - придется принимать меры...
Все ясно, или уточнить?


Автор: Arel 28.03.2007 4:39

Как мне взять из файла каждый второй элемент и засунуть в массив? Всё остальное я знаю как делать.

Автор: mamont001 28.03.2007 4:42

Цитата(Arel @ 28.03.2007 0:39) *

Как мне взять из файла каждый второй элемент и засунуть в массив? Всё остальное я знаю как делать.


{••••••••••••}
i:=0;
while not eof(f) do
begin
inc(i);
read (f,chislo1,chislo2); masiv[i]:=chislo2
end;
{••••••••••••}



способ не самый удачный,но зато лёгкий для понимания yes2.gif

Автор: Arel 28.03.2007 4:45

Объясни пожалуйста:
inc(i);
read (f,chislo1,chislo2); masiv[i]:=chislo2

Автор: mamont001 28.03.2007 4:47

i-переменная для номера масива.
read(f,chislo1,chislo2)- мы считываем 2 числа из файла f. Первое нам не надо,а второе мы записываем в масив

Автор: volvo 28.03.2007 4:48

Цитата
Как мне взять из файла каждый второй элемент и засунуть в массив?
Seek еще никто не отменял. У тебя все-таки по заданию файл типизированный (иначе понятие "четная позиция" лишено смысла)...

i := 2;
while i < filesize(f) do begin
seek(f, i);
read(f, massiv[i div 2]);
inc(i, 2);
end;

Автор: mamont001 28.03.2007 4:52

Я и не собирался отменять seek,просто человек скорее всего с ним лишний раз не работал:

Цитата
Как мне взять из файла каждый второй элемент

Поэтому я пользовался доступными всем процедурами....

Автор: volvo 28.03.2007 4:55

Цитата
Поэтому я пользовался доступными всем процедурами....
Пользоваться надо не доступными, а правильными процедурами. Ты же не жаришь яичницу на камнях, хотя тебе это и доступно... Однако, сковородка справится с этим гораздо лучше, не так ли?

Автор: Arel 28.03.2007 12:31

Через массив у меня не вышло, я сделала через фай. Как теперь мне нулевые компоненты первого файла заменить на максимум второго?