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

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

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

 
 Ответить  Открыть новую тему 
> Обработка одномерных массивов
Connected
сообщение 19.03.2007 20:37
Сообщение #1


Новичок
*

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

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


Найти произведение элементов с четными индексами одномерного массива Е размерности 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.


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

Сообщение отредактировано: Connected - 20.03.2007 18:10
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
compiler
сообщение 19.03.2007 20:45
Сообщение #2


Человек
*****

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

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


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


--------------------
Спасибо!
Удачи!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Connected
сообщение 19.03.2007 20:48
Сообщение #3


Новичок
*

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

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


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

Сообщение отредактировано: Connected - 19.03.2007 20:49
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Артемий
сообщение 19.03.2007 21:47
Сообщение #4


Помощник капитана
****

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

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


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);

А так?

Сообщение отредактировано: Артемий2 - 19.03.2007 21:48


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Адель
сообщение 19.03.2007 21:55
Сообщение #5


Иллюзия мира
***

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

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


Цитата(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.


Сообщение отредактировано: Адель - 19.03.2007 22:03
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Артемий
сообщение 19.03.2007 21:58
Сообщение #6


Помощник капитана
****

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

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


uses
SysUtils;

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

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

Сообщение отредактировано: Артемий2 - 19.03.2007 21:59


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Адель
сообщение 19.03.2007 22:04
Сообщение #7


Иллюзия мира
***

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

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


а в чем трабла? dry.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Алена
сообщение 19.03.2007 22:14
Сообщение #8


Гость






Цитата
а в чем трабла?
Да в том, что в Турбо Паскале этот код компилироваться не будет - нет там динамических массивов, а для Дельфи есть свой форум...
 К началу страницы 
+ Ответить 
Connected
сообщение 20.03.2007 18:41
Сообщение #9


Новичок
*

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

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


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

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.


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

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

 



- Текстовая версия 19.07.2025 18:17
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"