Помощь - Поиск - Пользователи - Календарь
Полная версия: работа с массивами
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Krono
составить структурированную программу замены наименьшего члена последовательности чисел средним арифметическим членом этой последовательности, не могу сообразить как это выглядит
Гость
Цитата(Krono @ 24.11.2008 18:49) *

составить структурированную программу замены наименьшего члена последовательности чисел средним арифметическим членом этой последовательности, не могу сообразить как это выглядит


Сначала находим минимальный элемент и запоминаем его индекс.
В этом же цикле считаем сумму всех элементов.
Делим сумму всех элементов на их количество и записываем в ту ячейку массива, что нашли в п. 1
Айра
Хм.. вот работу с файлами я тут если честно не вижу.. т.е. в задании об этом явно ничего не говорится, да и без нее можно все сделать:
1. вводишь массив, попутно складывая все элементы для среднего арифметического.. Можно в этом же цикле найти минимум, но можно организовать и еще один.
2. находишь среднее арифметическое
3. заменяешь (если точно известно, что наименьший элемент может быть только один, то можно в процессе его нахождения запомнить его индекс и потом сделать замену в одну строчку, а если их может быть несколько, то делаешь замену в цикле..), выводишь результат и радуешься, если все правильно smile.gif


p.s. что за зверь такой "структурированная программа" (точнее чем она отличается от того, что пишу обычно) - честно забыла unsure.gif

Добавлено через 1 мин.
to гость: опередил)
Krono
Цитата(Айра @ 24.11.2008 20:24) *

Хм.. вот работу с файлами я тут если честно не вижу.. т.е. в задании об этом явно ничего не говорится, да и без нее можно все сделать:
1. вводишь массив, попутно складывая все элементы для среднего арифметического.. Можно в этом же цикле найти минимум, но можно организовать и еще один.
2. находишь среднее арифметическое
3. заменяешь (если точно известно, что наименьший элемент может быть только один, то можно в процессе его нахождения запомнить его индекс и потом сделать замену в одну строчку, а если их может быть несколько, то делаешь замену в цикле..), выводишь результат и радуешься, если все правильно smile.gif
p.s. что за зверь такой "структурированная программа" (точнее чем она отличается от того, что пишу обычно) - честно забыла unsure.gif

Добавлено через 1 мин.
to гость: опередил)

спсибо за объяснение , я понял как работать должно, но не совсем понимаю как это выглядит ,помогите с прогой плыыззз
Kate!!!
Цитата(Krono @ 24.11.2008 21:23) *

спсибо за объяснение , я понял как работать должно, но не совсем понимаю как это выглядит ,помогите с прогой плыыззз



У меня точь-в-точь такое же задание) Я не понимаю, как писать всё это, а обязательным требованием является решать с использованием файлов:
1. ввод данных и запись в файл.
2. чтение из файла и результат работы программы.
3. вывод.
Прошу , помогите написать это, а то вообще ничего не понятноsad.gif(((

Добавлено через 8 мин.

а начала я вот так:

program lab3;
uses crt;
const
n=10;
type
t_file=file of integer;
var
i:integer;
a:array [1..n] of real;
f:t_file;
f_name:string;
iocode:integer;
y:integer;
begin
clrscr;
writeln('Menu:');
writeln('1.vvod dannih i zapis v fail');
writeln('2. chtenie iz faila');
writeln('3.vivod');
readln(y);
case y of
1:begin
repeat
writeln ('vvedite imia faila');
readln(f_name);
assign(f,f_name);
{$I-}
reset(f);
{I+}
iocode:=ioresult;
if iocode >0 then
writeln('fail ne naiden');
until iocode <>0;


М
Kate!!!, пожалуйста, используй теги при публикации кода (выделить код, выбрать нужный пункт из меню CODE). И постарайся не дублировать текст (я убрал)
Lapp

Lapp
Цитата(Kate!!! @ 26.11.2008 23:48) *
1. ввод данных и запись в файл.
2. чтение из файла и результат работы программы.
3. вывод.

Я сделал тебе пункты 2 и 3. Пункт 1 постарайся сделать сама. Разбирайся, что неясно - спрашивай.

Цитата(Kate!!! @ 26.11.2008 23:48) *
а начала я вот так:
Не нужно копировать куски чужого кода в попытке показать, что ты что-то делаешь...

var
f_in,f_out: file of integer;
i,m: integer;
s,n,p: LongInt;

begin
Assign(f_in,'in.dat');
ReSet(f_in);
s:=0;
n:=0;
m:=MaxInt;
while not EoF(f_in) do begin
Read(f_in,i);
s:=s+i;
Inc(n);
if i<m then begin
m:=i;
p:=n
end
end;
ReSet(f_in);
Assign(f_out,'out.dat');
ReWrite(f_out);
s:=Round(s/n);
n:=0;
while not EoF(f_in) do begin
Read(f_in,i);
Inc(n);
if n=p then i:=s;
Write(f_out,i)
end;
Close(f_in);
Close(f_out)
end.
Krono
хе , отлично спасибо )) я понял), очень благодарен
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.