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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2011, 10:37   #1
AdmmirAl
Новичок
Джуниор
 
Регистрация: 27.10.2011
Сообщений: 3
По умолчанию Одномерный массив

Помогите доделать задачу: есть 6 чисел (любых), надо с помощью одномерного массива найти их сумму. Вот что у меня получилось:

Код:
 var a:array[1..100] of integer; 
    s:longint; 
    i:integer; 
begin 
     writeln('введите 6 элементов массива'); 
     s:=0; 
     for i:=1 to 6 do begin 
        readln( a[i] ); 
        s:=s+a[i]; 
     end; 
     writeln( 'Сумма элементов = ', s ); 
     readln; 
end.
Проблема в том, что Паскаль считает цифры которые написаны в столбец. А как сделать чтобы он считал цифры, которые написаны в строчку? Препод говорит что у меня где то лишний readln есть.

Блин, блок схема говорит тоже с ошибкой:

начало

s:=0;

i,1,6,1

s:=s+a[i]; - дальше я стрелку к пред. пункту поставил

конец
Говорит что блока(ов) не хватает.

Последний раз редактировалось AdmmirAl; 27.10.2011 в 12:47.
AdmmirAl вне форума Ответить с цитированием
Старый 27.10.2011, 11:10   #2
TinMan
Форумчанин
 
Аватар для TinMan
 
Регистрация: 05.09.2011
Сообщений: 869
По умолчанию

Хм.. Интресно - что у тебя за Паскаль, который такое компилирует?..
Предпочитаю на "ты".
TinMan вне форума Ответить с цитированием
Старый 27.10.2011, 11:15   #3
AdmmirAl
Новичок
Джуниор
 
Регистрация: 27.10.2011
Сообщений: 3
По умолчанию

А что не так? Я сейчас добавил uses crt; и clrscr, вроде считает но только цифры, написанные в столбик.
AdmmirAl вне форума Ответить с цитированием
Старый 27.10.2011, 11:30   #4
Dush
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 116
По умолчанию

1. если у вас заранее известно, что массив состоит из 6 чисел то зачем объявлять его на 100?
Код:
а : array[1..6] of integer;
2. если вы считываете числа в массив то надо использовать обращение к определенному элементу по его индексу.
Код:
for i:=1 to 6 do
begin
  readln(a[i]);
  s:=s+a[i];
end;
3. зачем вы в конце программы перезаписываете значение s? паскаль будет ждать от вас ввода числа и если вы введете букву то выскочит ошибка. поставте просто
Код:
readln;
4. в цикле замените readln на read
Dush вне форума Ответить с цитированием
Старый 27.10.2011, 12:37   #5
AdmmirAl
Новичок
Джуниор
 
Регистрация: 27.10.2011
Сообщений: 3
По умолчанию

Насчет индекса я написал сюда не правильно. В остальном спасибо, подправил. Так как сделать чтоб он считал цифры, написанные в строчку?
AdmmirAl вне форума Ответить с цитированием
Старый 27.10.2011, 12:59   #6
Dush
Форумчанин
 
Регистрация: 29.09.2011
Сообщений: 116
По умолчанию

смотрите пункт 4.
цифры вводите через пробел, после ввода всех чисел -> Enter
Dush вне форума Ответить с цитированием
Старый 27.10.2011, 15:18   #7
maxwallaby
Пользователь
 
Аватар для maxwallaby
 
Регистрация: 15.09.2011
Сообщений: 17
По умолчанию

Dush всё правильно говорит, так просто надо поменять строчку. Вот то, что в принципе должно получится:
Код:
program a1;
uses crt;
var a:array[1..6] of integer; 
    s:longint; 
    i:integer; 
begin 
     writeln('Please, write 6 symbols:'); 
     s:=0; 
     for i:=1 to 6 do begin 
        read(a[i]);
        s:=s+a[i]; 
     end; 
     writeln( 'Sum of symbols = ', s );   
readkey
end.
maxwallaby вне форума Ответить с цитированием
Старый 27.10.2011, 19:48   #8
JUDAS
фонатик DELPHI
Форумчанин
 
Аватар для JUDAS
 
Регистрация: 14.01.2008
Сообщений: 714
По умолчанию

Код:
program Project1;
var
  a : array[1..6] of integer;
  S : integer;
begin
 writeln('Please, write 6 symbols:'); 
 read(a[1],a[2],a[3],a[4],a[5],a[6]);
 S:=a[1]+a[2]+a[3]+a[4]+a[5]+a[6];
 writeln(S);
 readln;
end.
95% сбоев и ошибок приложений, находится в полу метрах от монитора
JUDAS вне форума Ответить с цитированием
Старый 30.10.2011, 22:17   #9
maxwallaby
Пользователь
 
Аватар для maxwallaby
 
Регистрация: 15.09.2011
Сообщений: 17
По умолчанию

Цитата:
Сообщение от JUDAS Посмотреть сообщение
Код:
 
 read(a[1],a[2],a[3],a[4],a[5],a[6]);
 S:=a[1]+a[2]+a[3]+a[4]+a[5]+a[6];
Никогда не пишите так!!! А если будет сумма не 6-ти а 86 чисел, тоже в строчку будете перечислять?
Что это за культура кода? Не советуйте неправильно, пожалуйста!
maxwallaby вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Одномерный массив и Двумерный массив eugene1437 Общие вопросы C/C++ 15 25.05.2011 19:17
Одномерный массив VB lunat Помощь студентам 1 29.11.2010 19:30
Одномерный массив , двухмерный массив Woxx Паскаль, Turbo Pascal, PascalABC.NET 0 10.09.2010 09:28
Одномерный массив. Q basic - Построить новый массив из элементов исходного ,которые больше P. Marishkaa Помощь студентам 2 12.01.2010 16:54
Двумерный массив, одномерный массив. Branbal Помощь студентам 14 18.11.2009 12:40