Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.57/21: Рейтинг темы: голосов - 21, средняя оценка - 4.57
 Аватар для Кудинович
1 / 1 / 0
Регистрация: 10.02.2016
Сообщений: 43

Сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы

19.02.2016, 16:17. Показов 4759. Ответов 20

Студворк — интернет-сервис помощи студентам
Помогите найти ошибку в моей программе. Не нужно писать свою программу.

На вход программе подаются сведения о сдаче экзаменов учениками 9-х классов некоторой средней школы. В первой строке сообщается количество учеников N, которое не меньше 10, но не превосходит 100, каждая из следующих N строк имеет следующий формат:
<Фамилия> <Имя> <оценки>,
где <Фамилия> – строка, состоящая не более чем из 20 символов, <Имя> – строка, состоящая не более чем из 15 символов, <оценки> – через пробел три целых числа, соответствующие оценкам по пятибалльной системе. <Фамилия> и <Имя>, а также <Имя> и <оценки> разделены одним пробелом. Пример входной строки:
Иванов Петр 4 5 3
Требуется написать как можно более эффективную программу (укажите используемую версию языка программирования, например, Borland Pascal 7.0), которая будет выводить на экран фамилии и имена трех худших по среднему баллу учеников. Если среди остальных есть ученики, набравшие тот же средний балл, что и один из трех худших, то следует вывести и их фамилии и имена.



Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
program c4;
Var Saf:Array[1..100] Of Integer;
Var FI: Array[1..100] of String;
Var p2p,i,min1,min2,min3,n:Integer;
Var s: String;
begin
Writeln('Введите количество учащихся...');
Read(N);
Writeln ('Введите строку, содержащую сведения о сдаче экзамена');
For i:=1 to N do begin
Readln(s);
p2p:=PosEx(' ',s,pos(' ',s)+1);{позиция второго пробела в строке}
FI[i]:=Copy(s,1,p2p-1);{заполняем массив Фамилией и именем каждой строки}
Delete(s,1,p2p);{удаляем из исходной строки ФИ с пробелом}
SAF[i]:=(StrToInt(copy(s,1,1))+StrToInt(Copy(s,3,1))+StrToInt(copy(s,5,1)))div 3;
{заполянем массив средними значениями трех оценок}
end;
min1:=20;min2:=20;min3:=20; {находим третье минимальное среднее значение}
For i:=1 to N do begin
If Saf[i]< min1 then begin
min3:=min2;
min2:=min1;
min1:=Saf[i];
end
else If Saf[i]<min2 then begin
min3:=min2;
min2:=Saf[i];
end
else If Saf[i]<min3 then min3:=Saf[i];
end;
For i:=1 to N do {выводим всех учеников, у которых среднее значение баллов 
меньше или равно третьему минимальному значению}
   If Saf[i]<=min3 then writeln (Fi[i]);
   end.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.02.2016, 16:17
Ответы с готовыми решениями:

Написать программу, обновляющую исходный файл о сдаче экзаменов на основе файла о пересдаче
Вечер добрый (это только я, что-то унываю :(). Условие задачи: Имеется внешний файл, содержащий сведения о студентах первого курса:...

Реализация некоторой идеи в собственном проекте для школы
Доброго времени суток, обитатели форума. Пишу для школы экзаменатор в рамках учебно-исследовательской работы. Хочу реализовать некоторую...

Записи: в алфавитном порядке вывести на экран фамилии и имена абитуриентов, не допущенных к сдаче экзаменов
Решите задачу и напишите пожалуйста объяснение.... 1. В некотором вузе абитуриенты проходят предварительное тестирование, по...

20
 Аватар для Кудинович
1 / 1 / 0
Регистрация: 10.02.2016
Сообщений: 43
19.02.2016, 22:04  [ТС]
Студворк — интернет-сервис помощи студентам
Joy, короче я понял в чем ошибка... Весь вечер сидел голову-ломал, 2 раза паскаль переустанавил...
После этого разложил программу на "атомы"... Оказалось, что я ввожу неправильно!!!!
меня переклинило и каждый раз я вводил Фамилию Имя и ОТЧЕСТВО!!!!
И каждый раз вылетала ошибка...

Убеждаюсь в том, что порой какие-то мелочи, на которые уж точно никогда не обратишь внимание- мешают всему по жизни!!!!
Уделяйте большое внимание мелочам люди!

Добавлено через 6 минут
Итого правильная программа... Кстати по-мойму чем то легче чем у Полякова...
Посимвольный ввод для меня это вообще бред полнейший... Где его можно использовать то? А вот тут готовая , удобная программа. Вводишь строчку и доволен...
Главное разобраться с такими подпрограммами как : Pos, PosEx,Length,StrtoINt,val,delete,copy,st r,Insert...

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
program c4;
var Sum: Array[1..100] Of Integer;
var FI: Array[1..100] of String;
var p2p, i, min1, min2, min3, n: Integer;
var s: String;
begin
  Writeln('Введите количество учащихся...');
  Readln(N);
  Writeln('Введите строку, содержащую сведения о сдаче экзамена');
  for i := 1 to N do 
  begin
    Readln(s);
    p2p := PosEx(' ', s, pos(' ', s) + 1);{позиция второго пробела в строке}
    FI[i] := Copy(s, 1, p2p - 1);{заполняем массив Фамилией и именем каждой строки}
    Delete(s, 1, p2p);{удаляем из исходной строки ФИ с пробелом}
    Sum[i] := (StrToInt(copy(s, 1, 1)) + StrToInt(Copy(s, 3, 1)) + StrToInt(copy(s, 5, 1)));
    {заполняем массив суммой трех оценок}
  end;
  min1 := 20;min2 := 20;min3 := 20; {находим третье минимальное среднее значение}
  for i := 1 to N do 
  begin
    if Sum[i] < min1 then begin
      min3 := min2;
      min2 := min1;
      min1 := Sum[i];
    end
    else if Sum[i] < min2 then begin
      min3 := min2;
      min2 := Sum[i];
    end
    else if Sum[i] < min3 then min3 := Sum[i];
  end;
  for i := 1 to N do {выводим всех учеников, у которых среднее значение баллов 
    меньше или равно третьему минимальному значению}
    if Sum[i] <= min3 then writeln(Fi[i]);
end.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
19.02.2016, 22:04

Класс - ученик средней школы, шаблон класса
Помогите справиться с этой задачей пожалуйста! Создать шаблон заданного класса. Определить конструкторы, деструкторы, перегруженную...

Создать файл, содержащий сведения о сдаче студентами сессии
Структура записи: индекс группы, фамилия студента, оценки по пяти экзаменам, признак участия в общественной работе: «1» — активное участие,...

Создать файл, содержащий сведения о сдаче студентами сессии
А. Создать файл, содержащий сведения о сдаче студентами сессии. Структура записи: индекс группы, фамилия студента, оценки по пяти...

Создать файл, содержащий сведения о сдаче студентами сесси
А можеш эту задачку посмотрет ьоже с файлами?:. Создать файл, содержащий сведения о сдаче студентами сессии. Структура записи: индекс...

Сформировать массив, содержащий сведения о сдаче студентами сессии
натолкните на раздумия.. Сформировать массив, содержащий сведения о сдаче студентами сессии. Структурный тип содержит поля: индекс...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
21
Ответ Создать тему
Новые блоги и статьи
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет: 1. Использовать системное время и дату, 2. Есть возможность вводить время и дату вручную. 3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber. Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru