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

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

Форум «Всё о Паскале» _ Задачи _ Обработка одномерных массивов

Автор: Connected 20.03.2007 0:37

Найти произведение элементов с четными индексами одномерного массива Е размерности k (k меньше или равно 25).


Если возможно, представить схему алгоритма решения.


Есть вот такой пример:

Задание: Найти среднее арифметическое последних k элементов одномерного массива Z размерности n (n меньше или равно 20).

program lab4;
{Лабораторная работа N 4}

var
z :array [1..20] of integer;
k,n,i :integer;
sr :real;
begin
write('Введите размерность массива Z (n<=20) : ');
readln(n);
write('Введите k : ');
readln(k);
writeln('Введите массив Z :');
for i:=1 to n do {Вводим элементы массива Z}
begin
write('Z[',i,'] : ');
readln(z[i]);
end;
sr:=0;
for i:=n-k+1 to n do {Находим сумму последних k элементов}
sr:=sr+z[i];
sr:=sr/k; {Вычисляем среднее арифметическое}
writeln('Среднее арифметич. последних ',k,' элементов = ',sr:5:2);
end.


ЗАРАНЕЕ ОГРОМНОЕ СПАСИБО!

Автор: compiler 20.03.2007 0:45

проходиш по массиву со сщетчиком елеметов и не нулевые переписуеш(или указателями...) в другой массив...

Автор: Connected 20.03.2007 0:48

Я ничего не понял. Вообще не разбираюсь в программировании! Перешел из одного колледжа в другой и теперь надо получить зачет по информатике, а в моём старом колледже информатики у нас вообще не было! unsure.gif

Автор: Артемий2 20.03.2007 1:47

write('Введите размерность массива Z (n<=25) : ');
readln(n);
pr:=1;
for i:=1 to n do readln(E[i]);
for i:=1 to n do begin
if not odd(i) then begin
pr:=pr*E[i];
end;
end;
writeln(pr:6:2);

А так?

Автор: Адель 20.03.2007 1:55

Цитата(Connected @ 19.03.2007 20:37) *

Найти произведение элементов с четными индексами одномерного массива Е размерности k (k меньше или равно 25).


попробуй так

var
E:Array of Byte;
i,k,multiplication:Integer;
begin
writeln('Ââåäèòå ðàçìåðíîñòü ìàññèâà k<255');
readln(k);
SetLength(E,k);
write('Ââåäèòå ìàññèâ');
for i:=0 to k-1 do
readln(E[i]);
multiplication:=1;
for i:=0 to k-1 do
if i mod 2 = 0 then
multiplication:=multiplication*E[i];
writeln(multiplication);
readln
end.

Автор: Артемий2 20.03.2007 1:58

uses
SysUtils;

В турбо паскаль этого нет! Это не Delphi.

P.S Все решение неправильно.. E: array of Byte <-- когда-то я тоже на этом споткнулся! smile.gif

Автор: Адель 20.03.2007 2:04

а в чем трабла? dry.gif

Автор: Алена 20.03.2007 2:14

Цитата
а в чем трабла?
Да в том, что в Турбо Паскале этот код компилироваться не будет - нет там динамических массивов, а для Дельфи есть свой форум...

Автор: Connected 20.03.2007 22:41

В итоге так чтоли получается?

uses
crt;
var
E :array [1..20] of integer;
k,i :integer;
pr :real;
begin
write('Введите размерность массива E (k<=25) : ');
readln(k);
writeln('Введите массив E :');
for i:=1 to k do {Вводим элементы массива E}
begin
write('E[',i,'] : ');
readln(E[i]);
end;
pr:=1;
for i:=1 to k do if not odd(i) then pr:=pr*E[i];
writeln(pr:6:2);
END.