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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.10.2017, 18:04   #1
LinaMin
 
Регистрация: 17.10.2017
Сообщений: 8
По умолчанию [Pascal] После ввода входных данных программа ничего не выводит, хотя дальнейшие инструкции имеются.

Помогите пожалуйста. Я составила программу по задаче(внизу), но у меня проблема, после ввода Баллов за экзамены и ФИО(по задаче) она ничего больше не выводит, хотя там дальше идут действия. Мне сказали что в программе чего то не хватает, но до меня дойти не может чего. Если не сложно подскажите что мне нужно дописать.
Код:
program zadacha60;
var a:string;
    a1:array[1..1000] of string;
    i:array[1..100] of integer;
    n,b,c,d:integer;
begin 
   writeln ('ФИО'); read(a);
   writeln ('Баллы по математике'); read(b);
   writeln ('Баллы по русскому языку'); read (c);
   writeln ('Баллы по информатике'); read(d);
   
      begin
         if (i[b]>=100) and (i[c]>=100) and (i[d]>=100) then
            begin
              n:=i[b]+i[c]+i[d];
            end;
      end;
            begin
            if (n>=180) and (n>=250) then
               writeln (a, '-' , n , ' ,зачислен ,стипендия есть ')
            else writeln ('Не зачислен');
            end;
end.
Пожалуйста, оформляйте Ваш код согласно правилам.

Задача: Известны фамилии абитуриентов и их результаты ЕГЭ по рус.яз, матем., информ.(результаты за каждый экзамен от 0 до 100)
а) определить кто из студентов зачислен в институт, , если проходной балл 180
б)вывести фамилии тех кто будет получать стипендию(суммарный балл от 250)

Последний раз редактировалось Вадим Мошев; 19.10.2017 в 19:02.
LinaMin вне форума Ответить с цитированием
Старый 19.10.2017, 18:58   #2
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Понимания задачи не хватает.
Сколько у Вас студентов с их фамилиями и баллами?
А сколько раз Ваша программа эти данные вводит?


А это вообще что???
Цитата:
Сообщение от LinaMin Посмотреть сообщение
n:=i[b]+i[c]+i[d];
Black Fregat вне форума Ответить с цитированием
Старый 19.10.2017, 19:05   #3
LinaMin
 
Регистрация: 17.10.2017
Сообщений: 8
По умолчанию

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

Код:
program zadacha60;
var a:string;
    a1:array[1..1000] of string;
    i:array[1..100] of integer;
    n,b,c,d:integer;
begin 
   writeln ('ФИО'); read(a);
   writeln ('Баллы по математике'); read(b);
   writeln ('Баллы по русскому языку'); read (c);
   writeln ('Баллы по информатике'); read(d);
      begin
      for b:=1 to n do;
      for c:=1 to n do;
      for d:=1 to n do;
     
         if (b>=100) and (c>=100) and (d>=100)then 
         n:=b+c+d;
         if(n>=180) and (n>=250) then
         writeln (a, '-' , n , ' ,зачислен ,стипендия есть ')
         
         else
         writeln ('Не зачислен');
         end;
                  
end.
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 19.10.2017 в 19:33.
LinaMin вне форума Ответить с цитированием
Старый 19.10.2017, 19:40   #4
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от LinaMin Посмотреть сообщение
Должен вводиться фио одного студента и по порядку его баллы по трем экзаменам.
Зачем тогда массивы вообще? Зачем циклы?

Смотрю, баллы Вы уже проверяете и складываете напрямую. Это хорошо.

Цитата:
Сообщение от LinaMin Посмотреть сообщение
if (b>=100) and (c>=100) and (d>=100)then
Если это проверка на правильность ввода, то должно быть наоборот:
либо
Код:
if (b>=100) or (c>=100) or (d>=100) then
    writeln ('Ошибка');
else
    {тут работаем}
либо
Код:
if (b<=100) and (c<=100) and (d<=100) then
    begin
        {тут работаем}
    end
else
    writeln ('Ошибка');
Далее
Цитата:
Сообщение от LinaMin Посмотреть сообщение
if(n>=180) and (n>=250)
Двойная проверка тут не нужна, очевидно же, что если n >= 250, то и подавно n>=180. А перенести эту проверку нужно в ветку else, примерно так:
Код:
if n>=250 then
    {прошёл со стипендией}
else if n>=180 then
    {прошёл без стипендии}
else
    {увы..}
Black Fregat вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Конструктор ввода на основании ("Enter Based On" Wizard) 1С. Делаю всё по инструкции, но ничего не работает. so1idsnake Помощь студентам 0 30.08.2013 07:02
не выводит окошко для ввода данных Antoshkaa Помощь студентам 0 27.05.2013 15:57
программа очень простая, но у меня вылазит ошибка при запуске и ничего на экран не выводит nati_94 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 3 25.03.2013 01:20
Меняю знак не выводит ничего (Pascal) k4k7u3 Помощь студентам 3 19.04.2012 18:15
Как сделать вывод данных после всего ввода данных. Donatello Общие вопросы C/C++ 6 16.01.2011 16:32