Показать сообщение отдельно
Старый 22.11.2010, 01:07   #3 (permalink)
Tepp
Member
 
Регистрация: 13.11.2010
Сообщений: 12
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Цитата:
Сообщение от Vladimir_S Посмотреть сообщение
Пожалст.

1. В условии задачи говорится, что вводятся не числа, а строки символов. Значит, так и надо делать: вводить строки а уж затем преобразовывать в числа.
2. Нужно проверять четность не НОМЕРА элемента, а САМОГО элемента.
3. В конце программы хорошо бы вставить останов.
С учетом вышесказанного:
Код:
uses crt;
Var
 a:array[1..100] of String;
 i,n,s1,s2,d,Code:integer;
begin
 clrscr;
 s1:=0; s2:=0;
 write('n= ');
 Readln(n);
 Writeln('Вводим элементы массива:') ;
 for i:=1 to n do
  ReadLn(a[i]);
 for i:=1 to n do
  begin
   VAL(a[i],d,Code);
   if (d mod 2)=0 then
    s1:=s1+d
   else s2:=s2+d;
  end;
 writeln('Сумма четных элементов массива s1=',s1);
 writeln('Сумма нечетных элементов массива s2=',s2);
 ReadKey;
End.
Обратите внимание - строки вводить оператором Read нельзя, только ReadLn.
Спасибо огромное Но есть парочка вопросов
А val переводит строку в число?
И в чем замешаны переменные d и code?
Запутался что-то.
В конце ReadKey - эт что?
Цитата:
3. В конце программы хорошо бы вставить останов.
Кого? Не въехал
Tepp вне форума   Ответить с цитированием
Ads

Яндекс

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