Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
задачи по делфи.docx
Скачиваний:
3
Добавлен:
26.09.2019
Размер:
608.22 Кб
Скачать

Практические задачи на второй этап экзамена

Дисциплина «Основы алгоритмизации и программирования»

МАССИВЫ

  1. Написать программу на языке программирования для задания: найти сумму элементов столбца и строки массива NN, на пересечении которых находится максимальный элемент. Форма должна содержать компоненты для отображения исходного массива и результата.

  2. Написать программу на языке программирования для задания: создать матрицу NN и заполнить внешний периметр -1 (минус один), а остальная часть массива должна быть заполнена случайными числами от 0...9. Форма должна содержать поле ввода значения N, компонент для отображения массива.

  3. Написать программу на языке программирования для задания: создать матрицу NN и вычислить суммы элементов диагоналей. Форма должна содержать компоненты для отображения исходного массива, для ввода значения N и результата.

  4. Написать программу на языке программирования для задания: создать одномерный массив из N элементов, заполнить его случайным образом и отсортировать по возрастанию. Форма должна содержать компоненты для отображения исходного и отсортированного массива, компонент для ввода значения N.

  5. Написать программу на языке программирования для задания: создать одномерный массив из N элементов, заполнить его случайным образом и отсортировать по убыванию. Форма должна содержать компоненты для отображения исходного и отсортированного массива, компонент для ввода значения N.

  6. Написать программу на языке программирования для задания: создать одномерный массив из N элементов, заполнить его случайным образом неповторяющимися значениями от 1 до N. Форма должна содержать поле ввода значения N, компонент для отображения массива.

СТРОКИ

    1. Написать программу на языке программирования для задания: определить, сколько раз в строке встречается заданное слово (слово вводится с клавиатуры).

    2. Написать программу на языке программирования для задания: в тексте, записанном в объект TMemo, удалить все символы, равные введённому символу.

    3. Написать программу на языке программирования для задания: из строки удалить все лишние пробелы. Лишними считаются повторяющиеся пробелы, пробелы в начале и в конце строки.

    4. Написать программу на языке программирования для задания: определить, является ли введённое слово палиндромом (читается одинаково слева направо и справа налево). Все символы слова имеют одинаковый регистр (либо только маленькие, либо только большие).

    5. Пример палиндрома: слева направо – потоп; справа налево – потоп.

    6. Написать программу на языке программирования для задания: даны два слова. Определить, можно ли из первого слова составить второе. Пример – монитор и мотор.

ОПЕРАТОР ВЫБОРА CASE

8) Написать программу на языке программирования для задания: натуральное двухзначное число в десятичном представлении, вводимое в текстовое поле (TEdit), вывести в десятичном представлении на естественном языке. Например, 7 – семь, 24 – двадцать четыре, 52 – пятьдесят два.

9) Написать программу на языке программирования, используя оператор CASE. Для целого числа k от 1 до 99 напечатать фразу «Мне k лет», учитывая при этом, что при некоторых значениях k слово «лет» надо заменить словом «год» или «года». Например, 11 лет, 22 года, 51 год.

ЦИКЛЫ

10) Написать программу на языке программирования для задания: вывести все простые числа от 1 до 1000.

11) Написать программу на языке программирования, которая преобразует введённое двоичное число в десятичное.

12) Написать программу на языке программирования, которая выводит двоичное представление введённого с клавиатуры десятичного целого числа в диапазоне от 0 до 255.

13) Написать программу на языке программирования, которая вычисляет сумму ряда: 1-1/3+1/5-1/7+…+1/N. Число N вводится с клавиатуры.

14) Написать программу на языке программирования, выводящую наибольший общий делитель (НОД) двух вводимых целых чисел.

ТИП «МНОЖЕСТВО»

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

16) Написать программу на языке программирования для задания: даны два многозначных числа. Вывести на экран все цифры первого числа, которые отсутствуют во втором и все цифры второго числа, отсутствующие в первом (использовать тип «множество»).

17) Написать программу на языке программирования для задания: дан текст из строчных латинских букв, за которыми следует точка. Напечатать все буквы, входящие в текст по одному разу.

Тип «запись»

18) Написать программу на языке программирования для следующего задания. Запись содержит поля: фамилия, рост студентов. Создать константный массив типа «запись» из пяти строк. Вывести в компонент TstringGrid все записи из массива. Вычислить средний рост студентов.

19) Написать программу на языке программирования для задания: создать запись, состоящую из полей: марка машины, год выпуска, цена. Создать константный массив типа «запись» из пяти строк. Вывести в компонент TStringGrid марки машин, имеющих стоимость не больше указанной, с указанием года выпуска и цены.

20) Написать программу на языке программирования для задания: создать запись, состоящую из полей: фамилия, год рождения. Создать константный массив типа «запись» из пяти строк. Вывести в компонент TMemo фамилию и год рождения людей, которые родились позже указанного года.

Файловый тип данных

21) Написать программу на языке программирования для следующего задания.

Заполнить файл f целыми числами, полученными с помощью генератора случайных чисел. Определить, сколько процентов от общего числа элементов составляют положительные элементы файла.

22) Написать программу на языке программирования для следующего задания. Записать в файл f последовательного доступа N натуральных чисел. Получить в другом файле последовательного доступа все компоненты файла f, кроме тех, которые кратны К. Вывести полученный файл на экран.

23) Написать программу на языке программирования для задания: найти объём текстового файла. Один символ занимает один байт. Файл необходимо создать после запуска программы. Данные в файл записываются из поля TMemo.

24) Написать программу на языке программирования для задания: дан текстовый файл, содержащий текст с цифрами. Сколько цифр в тексте и какова их сумма? Файл необходимо создать после запуска программы. Данные в файл записываются из поля TEdit.

РАБОТА С ГРАФИКОЙ

25) Написать программу на языке программирования для задания: вывести на экран шахматную доску 88. Размер клеток необходимо задавать вручную в интервале 10…30.

26) Написать программу на языке программирования для задания: вывести на экран звёздное небо, состоящее из 100 звёзд разного размера и цвета. Звезда представляет собой крестик (два отрезка, пересекающиеся перпендикулярно по середине).

27) Нарисовать на форме правильный многоугольник. Количество углов многоугольника необходимо задать после запуска программы.

28) Написать программу на языке программирования для задания: вывести в центре экрана график функции y = x2.

ЭТАЛОНЫ ПРАВИЛЬНЫХ ОТВЕТОВ НА ПРАКТИЧЕСКИЕ ЗАДАНИЯ

по дисциплине «Основы алгоритмизации и программирования»

Задача № 1

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

Пример решения –

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.Button1Click(Sender: TObject);

var i,j:byte;

begin

randomize;

with stringgrid1 do

for i:=0 to ColCount-1 do

for j:=0 to RowCount-1 do

cells[i,j]:=inttostr(random(100)); end;

procedure TForm1.Button2Click(Sender: TObject);

var i,j,max,c,r:integer;

begin

max:=-1;

with stringgrid1 do

for i:=0 to ColCount-1 do

for j:=0 to RowCount-1 do

if strtoint(cells[i,j])>max then

begin

max:=strtoint(cells[i,j]);

c:=i; r:=j;

end;

max:=0;

with stringgrid1 do

for i:=0 to ColCount-1 do

for j:=0 to RowCount-1 do

if (i=c)or(j=r) then max:=max+strtoint(cells[i,j]);

edit1.text:=inttostr(max);

end;

end.