Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Delphi через Прат.doc
Скачиваний:
2
Добавлен:
14.11.2019
Размер:
631.81 Кб
Скачать

2 Spaces

Done

Примечания к программе

Обратите внимание на то, что, хотя оператор continue заставляет программу пропустить остальную часть тела цикла, он не препятствует выполнению выражения обновления цикла. В цикле for оператор continue вынуждает программу перейти непосредственно к выражению обновления и продолжения цикла.

Упражнения по программированию (5)

  1. Напишите программу, которая считывает ввод с клавиатуры до появления символа @ и отображает эти данные за исключением цифр. При этом каждый прописной символ преобразуется в строчный и наоборот (функции UpperCase и LowerCase).

  2. Напишите программу, которая считывает до десяти значений "пожертвований" в массив значений типа Real. Программа должна прерывать ввод при вводе нечислового значения. Необходимо выводить отчет о средней величине "пожертвований", а также о том, сколько значений в массиве превышают среднее значение.

  3. Напишите заготовку программы, управляемой меню. Программа должна отображать меню, состоящее из четырех пунктов, каждый из которых помечен буквой. Если пользователь отвечает вводом буквы, отличающейся от меток, программа должна предлагать ему ввести допустимый ответ до тех пор, пока это не будет сделано. Затем программа должна использовать оператор case для выбора простого действия, исходя из ответа пользователя. Результат выполнения программы мог бы выглядеть примерно так:

Please enter one of the following choices:

c) carnivore p) pianist

t) tree g) game q) quit

f

Please enter a c, p, t, or g: q

Please enter a c, p, t, or g: t

A maple is a tree.

  1. Вступив в Благотворительный орден программистов (Benevolent Order of Programmers — ВОР), вы можете быть известны на собраниях ВОР под своим действительным именем, по названию должности или по секретному псевдониму ВОР. Напишите программу, которая может перечислять членов ордена по действительным именам, по должностям, по секретным псевдонимам или по индивидуально заданным опциям. В основу программы положите следующую структуру:

// Структура имен членов Benevolent Order of Programmers

Tbop = record

fullname: String; // настоящее имя

title: String; // должность

bopname: String; // секретный псевдоним ВОР

preference: Integer; // 0 = fullname, 1 = title, 2 = bopname

end;

В программе создайте небольшой массив таких структур и инициализируйте его подходящими значениями. Программа должна выполнять цикл, который пользователю возможность выбирать различные варианты:

а. отображение по имени

b. отображение по должности

с. отображение по секретному псевдониму

d. отображение по индивидуально заданным опциям

q. выход

Учтите, что вариант "отображение по индивидуально заданным опциям" означает не вывод значения элемента preference, а отображение данных членов ордена в соответствии с установленными для них опциями. Результат выполнения программы может выглядеть примерно так:

Benevolent Order of Programmers Report

a. display by name

b. display by title

o. display by bopname

d. display by preference

q. quit

Enter your choice: a

Wimp Macho

Raki Rhodes

Celia Laiter

Boppy Hipman

Pat Hand

Hext choice: d

Wimp Macho

Junior Programmer

HIPS

Analyst Trainee

LOOPY

Next choice: q

Bye!

  1. Необходимо создать программу, которая отслеживает денежные взносы в Общество защиты нравственности. Она предлагает пользователю ввести количество взносов, затем имя и сумму взноса каждого спонсора. Информация должна храниться в динамическом массиве структур. Каждая структура содержит два элемента: массив символов имени и значение типа Real — сумму взноса. После считывания всех данных программа отображает имена и суммы взносов всех спонсоров, которые внесли более $10000. В начале этого списка должен находиться заголовок, указывающий, что следующие спонсоры являются почетными членами общества. После этого выводится список остальных спонсоров. Этот список должен следовать после заголовка "Спонсоры". Если в какой-либо категории отсутствуют спонсоры, программа выводит слово "нет". Помимо вывода двух категорий программа не осуществляет сортировку данных.

Листинг 7.5

функции с аргументом типа array

program Project1;

{$APPTYPE CONSOLE}

uses

SysUtils;

var

cookies: array[0..7] of Integer = (1,2,4,8,16,32,64,128);

sum: Integer = 0;

function summ_arr(arr: array of Integer; n: Integer): Integer;

var

total, i: Integer;

begin

total := 0;

for i:=0 to n do

total := total + arr[i];

Result := total;

end;

begin

sum := summ_arr(cookies, 8);

Writeln('Total cookies eaten: ', sum);

Readln;

end.

61

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]