О проекте
|
Тема: Сортировка записей.Рассмотрите решение задачи, наберите ее на компьютере, протестируйте, найдите в программе недостатки и устраните их. Дополните задачу комментариями и покажите учителю для оценки. Задача 1. Во время лыжных соревнований в центральный судейский компьютер поступают данные в следующем виде: номер участника, его фамилия, страна и показанный результат. Составить программу, которая после ввода очередной информации выдает таблицу результатов участников в порядке ухудшения. Program Ski; Uses Crt; Type inf= record num: byte; name,strana: string[30]; rez: real; end; Var m: array [1..100] of inf; i,j,k,l: integer; Procedure Input; Begin write('Введите количество участников соревнований: '); readln(k); for i:=1 to k do with m[i] do begin write('Введите номер участника: '); readln(num); write('Введите фамилию: '); readln(name); write('Какую страну представляет: '); readln(strana); write('Показанный результат: '); readln(rez); writeln; end; End; Procedure Vich; Var o: real; n,s:string; nm: byte; Begin ClrScr; for i:=1 to k-1 do for j:=i+1 to k do begin if m[j].rez<m[i].rez then begin o:=m[j].rez;{Меняем результаты} m[j].rez:=m[i].rez; m[i].rez:=o; nm:=m[j].num;{Меняем номера} m[j].num:=m[i].num; m[i].num:=nm; n:=m[j].name;{Меняем фамилии} m[j].name:=m[i].name; m[i].name:=n; s:=m[j].strana; {Меняем страны} m[j].strana:=m[i].strana; m[i].strana:=s; end; end; End; Procedure Output; Begin for i:=1 to k do with m[i] do begin writeln('',i,'-ое место занял:'); writeln('участник под номером: ',num); writeln('Его фамилия: ',name); writeln('Представляет страну : ',strana); writeln('Показанный результат: ',rez:3:1); writeln; end; End; Begin ClrScr; Input; Vich; Output; ReadKey; End. |
Задание. Дополните решенную Вами предыдущую задачу сортировкой по выбранному Вами полю записи и выводом отсортированного массива записей на экран. Сортировку осуществляйте с помощью одного из способов, выбранного учителем из предложенных: - сортировка вставкой;
- сортировка выбором;
- сортировка методом простого обмена;
- сортировка с помощью рекурсии.
Задание. Выберите с учителем задачи для решения из предложенного списка. Для проверки учителем решения Вашей задачи приготовьте не только листинг и файл с протестированной задачей, но и 3-4 теста для демонстрации различных вариантов введения информации и вывода на экран. - Среди N абитуриентов, сдававших экзамены по информатике, математике и английскому языку, выбрать всех отличников и всех учащихся, набравших в сумме не меньше проходного балла. Данные о проходном балле вводятся с клавиатуры.
- Среди N абитуриентов, сдававших экзамены по информатике, математике и английскому языку в перечисленном порядке, выбрать учащихся, не допущенных к сдаче следующего экзамена в связи с получением неудовлетворительной оценки по предыдущему экзамену. Выдать на экран список абитуриентов, удачно сдавших все экзамены.
- Составить программу, выдающую справку о номере квартиры, в которой проживает жилец. В доме имеется N квартир и проживает M человек. Пользователь вводит фамилию жильца. Если в доме поживает несколько жильцов с такой фамилией, то выдается сообщение о необходимости ввести инициалы. Если инициалы у нескольких жильцов совпадают, то необходимо ввести год рождения. Если с такими данными найдется один жилец (несколько), то вывести номер (номера) квартир, где он (они) проживают и все введенные о нем (них) сведения. Если жильца с такой фамилией нет, то вывести сообщение об этом.
- Составить программу, которая анализировала бы введенную информацию о пользователях городской телефонной сети и выдавала бы список абонентов, имеющих задолженность за месяц, а также считала пеню (вводится пользователем). Запись должна иметь поля:
- месяц анализа данных;
- фамилию, имя, отчество;
- номер телефона;
- адрес;
- имеющиеся льготы по оплате;
- абонентская плата;
- стоимость междугородних разговоров;
- стоимость дополнительных платных услуг.
По введенной информации и запросу пользователя предусмотреть в программе вывод предупреждения абонентов, имеющих задолженность.
- Составить программу, собирающую данные об авиакомпаниях и выдающую справку туристу до запрашиваемого места. Справка должна содержать:
- название авиакомпании;
- название рейса;
- номер рейса;
- тип самолета;
- даты вылета (содержатся в массиве);
- наличие мест в 1 и 2 классах;
- стоимость перелета.
В случае покупки билета, массив записей должен быть соответственно измениться.
- Во время лыжных соревнований в центральный судейский компьютер поступают данные в следующем виде: номер участника, его фамилия, страна и показанный результат. Составить алгоритм, который после ввода очередной информации выдает таблицу результатов участников в порядке ухудшения.
- В экзаменационной ведомости фиксируются фамилии учеников, номера билетов, оценки, записанной прописью. Составьте подобную ведомость для группы из N человек на основе сформированного массива записей. Строка списка имеет следующий вид:
Иванов Александр билет № 12 (отлично)
Вывести информацию о результатах экзамена в следующем виде: Количество экзаменуемых - 25 Сдали на "отлично" - 7 Сдали на "хорошо" - 10 Сдали на "удовлетворительно" - 7 Сдали на "неудовлетворительно" - 1 Не явились - нет
- По окончании школы ученики сдавали экзамены по литературе, математике, физике и информатике. Определите экзамен, на котором ученики получили наиболее высокий средний бал и выведите список учащихся в порядке убывания результатов по этому экзамену.
- Составить программу, организующую заполнение массива записями, содержащими информацию о здоровье детей в лагере отдыха. Запись должна содержать поля:
- фамилия, имя ребенка;
- дата прибытия в лагерь;
- вес ребенка (на день прибытия, через 10 дней, через 20 дней);
- рост ребенка;
- возраст;
- номер отряда;
- наличие хронических заболеваний.
Вывести данные о детях, увеличивающих свой вес и о детях, которые худеют.
- Познакомившись с содержанием предыдущих задач придумайте свою интересную задачу и решите ее.
|