Форум программистов  
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 19.10.2017, 19:04   #1
LinaMin
Новичок
 
Регистрация: 17.10.2017
Сообщений: 7
Репутация: 10
По умолчанию [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 в 20:02.
LinaMin вне форума   Ответить с цитированием
Старый 19.10.2017, 19:58   #2
Black Fregat
Программист
Форумчанин
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 497
Репутация: 373
По умолчанию

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


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

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

Код:

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 в 20:33.
LinaMin вне форума   Ответить с цитированием
Старый 19.10.2017, 20:40   #4
Black Fregat
Программист
Форумчанин
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 497
Репутация: 373
По умолчанию

Цитата:
Сообщение от 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 вне форума   Ответить с цитированием
Ответ



Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

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




23:50.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.

купить трафик


как улучшить посещаемость, а также решения по монетизации сайтов, видео и приложений

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru