Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2010, 13:49   #1
Figushkin
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 31
По умолчанию Исправьте программу в паскале.

Подправьте плз. Задание: В последовательности действительных чисел a1, a2, …, an есть только положительные и отрицательные элементы. Вычислить произведение отрицательных элементов P1 и произведение положительных элементов Р2. Указать какое произведение по модулю больше.

program vosem;
uses crt;
TYPE
massiv=array[1..1000] of real;
var p1,p2,n,i,m:integer;
x:massiv;

begin
clrscr;
writeln('введите количество элементов в массиве');
readln(n);
for i:=1 to n do
begin
write('X[',i,']= ');
readln(x[i]);
end;
begin
if х[i]>0 then
p1:=p1*x[i];
if х[i]<0 then
p2:=p2*х[i];
end;
if p1>abs(p2) then
writeln('произведение положительных больше по модулю произведения отрицательных')
else
if p1<abs(p2) then
writeln('произведение отрицательных по модулю больше произведения положительных')
else
writeln('произведения равны');
readln;
repeat until keypressed;
end.

Выдает ошибку, попытка присвоить переменной типа integer выражение типа real.

Последний раз редактировалось Figushkin; 26.05.2010 в 13:52.
Figushkin вне форума Ответить с цитированием
Старый 26.05.2010, 14:01   #2
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

А теперь на свою взгляни.
Код:
program vosem;
uses crt;
TYPE
massiv=array[1..100] of real;
var n,i,m:integer;
 p1,p2:real;
x:massiv;

begin
clrscr;
p1:=1;
p2:=1;
write('введите количество элементов в массиве');
readln(n);
for i:=1 to n do
begin
write('X[',i,']= ');
readln(x[i]);
if x[i]>0 then
begin
p1:=p1*x[i];
end;
if x[i]<0 then
begin
p2:=p2*x[i];
end;
end;
writeln;
if abs(p1)>abs(p2) then
writeln('произведение положительных больше по модулю произведения отрицательных')
else
if abs(p1)<abs(p2) then
writeln('произведение отрицательных по модулю больше произведения положительных')
else
writeln('произведения равны');
readln;
repeat until keypressed;
end.
にんじゃ

Последний раз редактировалось ROMA2PVT; 26.05.2010 в 14:05.
ROMA2PVT вне форума Ответить с цитированием
Старый 26.05.2010, 14:08   #3
Ol'ga_new
Форумчанин
 
Регистрация: 12.05.2010
Сообщений: 125
По умолчанию

Сам ответил на свой вопрос типы р1,р2 и тип элементов массива должны совпадать, что и исправил в твоей программе ROMA2PVT.
Ol'ga_new вне форума Ответить с цитированием
Старый 26.05.2010, 14:13   #4
ROMA2PVT
ТАМБОВСКИЙ ВОЛК.
Участник клуба
 
Аватар для ROMA2PVT
 
Регистрация: 16.03.2010
Сообщений: 1,354
По умолчанию

и вот это
Код:
begin
if х[i]>0 then
p1:=p1*x[i];
if х[i]<0 then
p2:=p2*х[i];
end;
にんじゃ
ROMA2PVT вне форума Ответить с цитированием
Старый 26.05.2010, 17:14   #5
Figushkin
Пользователь
 
Регистрация: 20.05.2010
Сообщений: 31
По умолчанию

Большое спасибо
Figushkin вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Исправьте программу для определения минимального элемента линейного массива Х Figushkin Помощь студентам 1 22.05.2010 09:23
составить программу в паскале) amitistka Помощь студентам 1 01.02.2010 22:28
Исправьте пожалуйста программу Алексей_xXx Помощь студентам 2 29.05.2009 05:11
проверьте программу плиз и исправьте что там не так Gronex Помощь студентам 3 21.05.2009 17:01
Исправьте программу плиз! Турбопаскаль. maxiswell Помощь студентам 2 08.01.2009 18:21