Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 14.06.2012, 22:21   #1 (permalink)
Ольга111
Новичок
 
Регистрация: 06.02.2012
Сообщений: 8
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию Паскаль с массивами, ошибка

вычислить среднее арифметическое положительных элементов для линейных одномерных массивов х,у,и z.
вот моя программка

Program L7V7;
uses crt;
const n=6;
type matr=array [1..n] of integer;
var x,y,z:matr;
i,k,d,s,a:integer;
u:real;
begin
for i:=1 to n do
begin
write('x[',i,']=');
readln(x[i]);
end;
for i:=1 to n do
begin
write('y[',i,'[=');
readln(y[i]);
end;
for i:=1 to n do
begin
write('z[',i,']=');
readln(z[i]);
end;
begin
if x[i]>0 and y[i]>0 and z[i]>0 then
begin
s:=0;
s:=s+x[i]+y[i]+z[i];
k:=k+1;
end;
end;
u:=s/k;
end.

ПОСЛЕ Z[I]<0 ВЫДАЕТ ЧТО ОПЕРАНДЫ ИМЕЮТ НЕПРИВОДИМЫЕ ТИПЫ?И УКАЗЫВАЕТ НА i
Ольга111 вне форума   Ответить с цитированием

Старый 14.06.2012, 22:21
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Данные топики очень похожи по содержанию на вашу тему

Две задачи с массивами в Паскале
Паскаль. Работа с двумерными массивами
Помогите, пожалуйста. Работа с одномерными массивами, Паскаль
Помогите с массивами в Pascal

Старый 15.06.2012, 03:10   #2 (permalink)
duc
Banned
 
Регистрация: 23.11.2010
Сообщений: 6,749
Сказал(а) спасибо: 18
Поблагодарили 27 раз(а) в 6 сообщениях
Репутация: 17514
По умолчанию

Цитата:
Сообщение от Ольга111 Посмотреть сообщение
begin
if x[i]>0 and y[i]>0 and z[i]>0 then
begin
s:=0;
s:=s+x[i]+y[i]+z[i];
k:=k+1;
end;
end;
u:=s/k;
Прошу прощения, но абсолютно не понял само тело программы... Как написанное вяжется с заданием
Цитата:
Сообщение от Ольга111 Посмотреть сообщение
вычислить среднее арифметическое положительных элементов
k не задано вообще, s обнуляется и всё находится вне циклов. В зависимости от конкретной реализации компилятора счётчик цикла i по его завершении может оказаться в неопределённом состоянии, потому и ошибка указывает именно на него.
duc вне форума   Ответить с цитированием
Старый 15.06.2012, 09:50   #3 (permalink)
Vladimir_S
Специалист
 
Регистрация: 27.08.2008
Адрес: Санкт-Петербург
Сообщений: 27,807
Сказал(а) спасибо: 340
Поблагодарили 583 раз(а) в 208 сообщениях
Репутация: 113184
По умолчанию

А к сказанному Duc'ом добавлю следующее:
1. Мутная формулировка задачи. Что значит "среднее арифметическое положительных элементов для линейных одномерных массивов"? Для каждого массива в отдельности? Или по всем трем в куче? Или (как пытаетесь Вы) если элементы трех массивов, стоящие на i-той позиции каждый, положительны, то найти среднее арифметическое между ними? В общем, с места мы не сдвинемся, пока не появится ясная, четкая и однозначная формулировка задания. При этом отмазки типа "А мне так дали!" НЕ ПРИНИМАЮТСЯ. Разбирайтесь, выясняйте - Ваши проблемы.
2. Вы присоединяете модуль CRT. Вопрос - зачем, если ни одной команды CRT в программе не наблюдается? Просто бездумно скатали шаблон?
Vladimir_S вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 07:29.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.