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

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

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

Восстановить пароль

Купить рекламу на форуме - 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