Размер шрифта: A AA Изображения Выключить Включить Цвет сайта Ц Ц Ц Х
Бесплатный конструктор сайтов - uCoz
Суббота, 18.05.2024, 19:18
Приветствую Вас Гость | RSS

Сайт учителя информатики  и ИКТ Шинкаренко Евгения Александровича

Реклама
Оцените сайт
Оцените мой сайт
Всего ответов: 837
Программирование
Какой язык программирования выбрать для подготовки к ЕГЭ
Всего ответов: 804

Решение задачи №9.

Задача №9.

В некотором вузе абитуриенты проходили предварительное тестиро­вание, по результатам которого они могут быть допущены к сдаче вступительных экзаменов в первом потоке. Тестирование проводится по двум предметам, по каждо­му предмету абитуриент может набрать от 0 до 100 баллов. При этом к сдаче экза­менов в первом потоке допускаются абитуриенты, набравшие по результатам тести­рования не менее 30 баллов по каждому из двух предметов. На вход программе подаются сведения о результатах предварительного тестирования. Известно, что общее количество участников тестирования не превосходит 500. В первой строке вводится количество абитуриентов, принимавших участие в тестировании, N. Далее следуют N строк, имеющих формат:

<Фамилия> <Имя> <Баллы>

где

<Фамилия> — строка, состоящая не более чем из 20 символов, <Имя> — строка, состоящая не более чем из 15 символов,

    <Баллы> — строка, содержащая два целых числа, разделенных пробелом, — баллы, полученные на тестировании по каждому из двух предметов.

При этом <Фамилия> и <Имя>, <Имя> и <Баллы> разделены одним пробелом. Пример входной строки: Романов Вельямин 48 39

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

Решение задачи №9.
var
f:array[1..500] of record  {задаем массив записей с полями fam и bal}
fam:string;  {поле fam (типа строка) будет принимать значение фамилии и имени}
bal:boolean;  {поле bal (логического типа) будет проверять прошел ли абитуриент тестирование}
end;
buf:boolean;  {логическая переменная buf поможет нам отсортировать абитуриентов}
str:string;  {строковая переменная str
поможет нам отсортировать абитуриентов}
b1,b2,i,n,j:integer;  {целочисленные переменные, b1-оценка за первый предмет, b2-оценка за второй предмет, i-индекс массива, n-количество абитуриентов, j-индекс}
c:char;  {символьная переменная для считывания посимволам фамилии и имени}
begin
readln(n);  {считываем количество абитуриентов}
for i:=1 to n do  {задаем цикл для считывания данных всех абитуриентов}
begin
repeat  {считываем фамилию до пробела}
begin
read(c);
f[i].fam:=f[i].fam+c;  {поле записи fam принимает значение фамилии абитуриента}
end;
until c=' ';  
repeat    {считываем имя абитуриента}
begin
read(c);
f[i].fam:=f[i].fam+c; 
{поле записи fam к фамилии прибавляет имя}
end;
until c=' ';
f[i].bal:=false;  {начальное значение
поле bal всего массива записей будет ложно}
read(b1,b2);   {считываем две оценки}
if (b1<30)or(b2<30) then f[i].bal:=true;  {если хоть одна оценка ниже 30 балов, то
поле bal будет истина, абитуриент не прошел тестирование}
end;  {мы считали в массив записей данные всех абитуриентов и определили какие из них не прошли тестирование}
For i := 1 To n-1 do begin  {сортируем весь массив записей в алфавитном порядке поля fam}
For j := i + 1 To n do
If f[i].fam > f[j].fam Then
begin
str:= f[i].fam;
f[i].fam:= f[j].fam;
f[j].fam:= str;
buf:= f[i].bal;
f[i].bal:= f[j].bal;
f[j].bal:= buf;
end;
end; 
{мы отсортировали весь массив, нам осталось вывести на экран абитуриентов не прошедших тестирование в алфавитном порядке}
for i:=1 to n do
if f[i].bal=true then writeln (f[i].fam);  {если поле массива записей bal истина, то выводим на экран фамилию и имя абитуриента}
end.


Алгоритм решения задачи
  • считываем данные введенные с клавиатуры в массив записей, одна запись будет принимать значение Фамилии и Имени, другая будет показывать прошел ли тест абитуриент
  • сортируем массив записей в алфавитном порядку по полю содержащему Фамилию и Имя
  • выводим на экран абитуриентов  которые не прошли тестирование
Возврат к списку задач
Реклама
Календарь
«  Май 2024  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Поиск
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Счетчик яндекс
Яндекс.Метрика