О проекте
|
Тема: Контрольная работа.1. Данный фрагмент программы преобразуйте в подпрограмму, используя правила форматирования: Program Primer; Var a: array[1..8] of integer; M, k: integer; Begin for k:=1 to 8 do readln(a[k]);M:=a[1]; for k:=2 to 8 Do if M<a[k] Then M:=A[k]; Write(m) End. Сколько раз будет исполнен подчеркнутый оператор при заданном массиве: 3, 8, 7, 9, 4, 10, 2, 12: Чему будет равно значение М?
2. Чему будет равно значение переменной К после исполнения фрагмента программы K:=1; while (a[K]<>X) and (K<=10) do K:=K+1; (Здесь Х=7, а в качестве элементов массива введены числа: 2, 3, 5, 9, 12, 0, 7, 6, 7.)
3. При наборе программы вычисления суммы отрицательных элементов массива for k:=1 to 8 do readln(a[k]); s:=0; for k:=1 to 8 do if a[k]<0 then s:=s+1; write(s) была допущена ошибка. Каким оказался ответ, если были введены числа: -1, 3, -2, 4, -5, 6, -7, 8. Каким должен был быть оператор и чему равен правильный ответ?
4. Дано тело подпрограммы: begin for k:=1 to 4 do for g:=1 to 4 do a[k,g]:=g-k;q:=0; for k:=1 to 4 do for g:=1 to 4 do if a[k,g]<0 then begin q:=q+1; b[q]:=a[k,g] end; m:=b[1]; for k:=1 to q do if m<b[k] then m:=b[k]; writeln(m); end; Опишите заголовок подпрограммы и необходимые локальные переменные. Какое число будет выведено после ее выполнения?
5. Основное различие между процедурами и функциями заключается в том, что: в результате работы процедуры можно получить любое количество переменных, а функции - одно; в процедуре допускается описание локальных переменных, а в функции - нет; в программе обращение к процедуре может осуществляться многократно, тогда как к функции только один раз; в процедуре допускается использование глобальных переменных, а в функции - нет.
6. Формальные параметры процедуры: описываются в ее заголовке; перечисляются при вызове процедуры; указываются при описании данных в программе; указываются при описании промежуточных переменных процедуры.
7. Фактические параметры процедуры: описываются в ее заголовке; перечисляются при вызове процедуры; указываются при описании данных в программе; указываются при описании промежуточных переменных процедуры.
8. Задача о выборах Пусть шесть населенных пунктов, обозначенные номерами от 1 до 6 (величина k), а пять кандидатов - номерами от 1 до 5 (величина n). Количество голосов, набранных кандидатами в каждом пункте, определяется формулой ak=random(10i+50), где i - номер Вашего варианта. В результате получается таблица результатов голосования, где значения в строках - данные из населенных пунктов, а в столбцах - данные по конкретным кандидатам. Создайте в подпрограмме одномерный массив с искомыми данными в соответствии со своим вариантом.
- Какое количество голосов было подано за первого и второго кандидатов во всех населенных пунктах? У кого из второго, четвертого и пятого кандидатов наивысший рейтинг?
- В каких населенных пунктах второй и четвертый кандидаты набрали максимальное количество голосов? Кто набрал максимальное, а кто минимальное количество голосов в первом населенном пункте?
- Сколько избирателей приняли участие в голосовании в каждом из населенных пунктов? В каких населенных пунктах первый и пятый кандидаты набрали больше 100 голосов?
- Кто из кандидатов имеет максимальный рейтинг? В каких населенных пунктах количество участников выборов не превысило 450?
- Кто из кандидатов набрал максимальное количество голосов во втором населенном пункте? У кого из кандидатов рейтинг больше некоторого заданного числа р?
- В каких населенных пунктах количество опрошенных больше некоторого заданного числа р? Какие кандидаты набрали минимальное количество голосов в каждом из населенных пунктов?
- За кого из кандидатов подано количество голосов меньше некоторого заданного числа р? Какие кандидаты набрали максимальное и минимальное количество голосов во втором и пятом населенных пунктах?
- В каких населенных пунктах первый кандидат набрал максимальное количество голосов? У кого из кандидатов наименьший рейтинг?
- В каком населенном пункте проголосовало наибольшее количество людей? У кого из кандидатов рейтинг превысил некоторое заданное число р?
- Кто из кандидатов набрал наибольшее количество голосов во втором и третьем населенных пунктах? В каких населенных пунктах третий кандидат набрал максимальное количество голосов?
- В каком населенном пункте первый кандидат набрал минимальное количество голосов, а в каком максимальное? Определить номера населенных пунктов, где количество поданных голосов превысило 150.
Для любопытныхГрафические программы с применением массивов.Рассмотрите приведенный ниже пример. Задача. Нарисовать олимпийский флаг. Обеспечьте в программе ввод радиуса колец (R) и расположение флага на экране, задавая координаты его верхнего правого угла (Х, Y). Для хранения цветов колец использовать массив. Program Flag; Uses Graph; Var ... U, V, X, Y, R, A, B, L, i : integer; Palitra : array [1..5] of integer; Begin write('R='); readln (R); write('X='); readln (X); write('Y='); readln (Y); ...{Инициализация графического режима} Palitra [1] := LightBlue; Palitra [2] := Black; Palitra [3] := Red; {Задание цветов колец} Palitra [4] := Yellow; Palitra [5] := Green; A := 7*R; B := 5*R; {Вычисление размера флага} L := 2*R-round(R/4); {Вычисление расстояния между кольцами} SetFillStyle(1, 15); Bar (X, Y, X+A, Y+B); {Рисование белого флага} SetLineStyle(0, 1, 3); U := X+Round (1.75*R); {Координаты первого верхнего кольца} V := Y+L; for i := 1 to 5 do {Рисование пяти колец} begin if i=4 Then Begin U := X+Round(2.65*R); {Координаты первого нижнего кольца} V := Y+3*R; End; SetColor(Pal[i]); {Задание цвета i-го кольца} Circle(U, V, R); {Рисование кольца} U := U+L; {Расположение следующего кольца} end; readln; CloseGraph; End. |
Выберите самостоятельно задачу из ниже предложенного перечня: - Нарисовать радугу в нижней части экрана.
- Вывести разноцветные концентрические кольца с центром в середине экрана. Обеспечить диалоговый ввод последовательности меняющихся цветов колец и контроль выхода за границы экрана.
- Модифицировать задачу 2 для рисования разноцветных неконцентрических колец, цвета которых вводятся в диалоге.
- Нарисовать шахматную доску. Расставить шашечную позицию, которая запрашивается с экрана. Расположение шашки задается парой чисел: номером клетки по вертикали и по горизонтали.
- Нарисовать схему расположения городов, которые отмечаются на экране кружочками. Координаты городов предварительно вводятся с клавиатуры.
- Модифицировать предыдущую задачу, предполагая, что размер кружка зависит от численности населения города.
- Изобразить на экране движение шара по биллиардному столу с лузами. Расположить лузы по краям биллиардного стола, задав их координаты в диалоге. Движение шара прекращается при попадании его в лузу.
- Получить мультфильм "Круги на воде", используя концентрические окружности. Центры окружностей должны быть совмещены с центром экрана. Иллюзия движения создается последовательной сменой цветов всех окружностей, начиная с внутренней и кончая внешней. Обеспечить ввод максимального и минимального радиусов в диалоге, а также количество волн и последовательность сменяющихся цветов.
- Промоделировать работу светофора без учета дорожной обстановки. Обеспечить ввод временных интервалов смены цветов. Для обеспечения временной задержки используйте процедуру Delay.
- Нарисовать поле размером 10х10 для игры в "Морской бой". На нем с помощью датчика случайных чисел расставить 10 однопалубных кораблей, чтобы они не соприкасались друг с другом. Изобразить позицию на экране компьютера.
|