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

Контрольные вопросы

  1. Как записывается и как работает оператор FOR?

  2. Для организации каких циклов применим оператор FOR?

  3. В чем отличие оператора WHILE от оператора REPEAT?

  4. Как программируются циклические алгоритмы с явно заданным числом повторений цикла?

  5. Как программируются циклические алгоритмы с заранее неизвестным числом повторений цикла?

  6. Напишите оператор цикла, который не выполняется ни разу.

  7. Напишите оператор цикла, который выполняется неограниченное число раз.

  8. Замените оператор "Repeat A Until B" равносильным фрагментом программы с оператором While.

Задачи

Вычисление выражений: Дано натуральное n. Вычислить: 1. ; 2. ; Дано действительное число х, натуральное число n. Вычислить: 3.x ( x - n )( x - 2 n )( x - 3 n )…( x - n2 ); 4. ; 5. ; Дано натуральное n. Вычиcлить: 6. ; 7. ;

Вычислить приближенно значение бесконечной суммы (справа от каждой суммы дается ее точное значение, с которым можно сравнить полученный ответ): 8. = ; 9. = ; 10. = ;

Нужное приближение считается полученным, если вычислена сум-+\.ма нескольких первых слагаемых, и очередное слагаемое оказалось по модулю меньше данного положительного числа e.

Задачки на смекалку

  1. Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9.

  2. Найти все трехзначные числа, сумма цифр которых равна данному целому числу.

  3. Найти все трехзначные числа, средняя цифра которых равна сумме первой и второй цифр.

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

  5. Найти все двузначные числа, сумма квадратов цифр которых делится на 17.

  6. Найти все трехзначные числа, представимые в виде сумм факториалов своих цифр.

  7. Найти двузначное число, обладающее тем свойством, что куб суммы его цифр равен квадрату самого числа.

  8. Найти двузначное число, равное утроенному произведению его цифр.

  9. В каких двузначных числах удвоенная сумма цифр равна их произведению?

  10. Можно ли заданное натуральное число М представить в виде суммы квадратов двух натуральных чисел? Написать программу решения этой задачи.

Задачи повышенной сложности

  1. Определить, является ли заданное число совершенным , т.е. равным сумме всех своих (положительных) делителей, кроме самого этого числа (например, число 6 совершенно: 6=1+2+3).

  2. Дано натуральное k. Напечатать k-ю цифру последовательности 1234567891011121314..., в которой выписаны подряд все натуральные числа.

  3. Дано натуральное k. Напечатать k-ю цифру последовательности 149162536..., в которой выписаны подряд квадраты всех натуральных чисел.

  4. Дано натуральное k. Напечатать k-ю цифру последовательности 1123581321..., в которой выписаны подряд все числа Фибоначчи.

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

Лабораторная работа 4

Программирование с использованием массивов

Теоретический материал

Справочник по процедурам и функциям

Цель работы: научиться правильно описывать различные массивы, уметь инициализировать массивы, распечатывать содержимое массива; научится решать задачи на использование массивов.

Общие сведения:

Массив - это структурированный тип данных, который используется для описания упорядоченной совокупности фиксированного числа элементов одного типа, имеющих общее имя. Для обозначения элементов массива используются имя переменной-массива и индекс.

Перед выполнением работы необходимо изучить правила описания и использования переменных типа массив, типизированных констант типа массив.

Примеры:

Пример1: Дан двумерный массив. В каждой строке все его элементы, не равные нулю, переписать (сохраняя порядок) в начало строки, а нулевые элементы - в конец массива. Новый массив не заводить. Этапы решения задачи: 1. Суть одного из алгоритмов решения данной задачи состоит в том чтобы "просматривать" массив построчно и находить в каждой строке пару (0:число), а затем менять их местами между собой и так до тех пор пока в строке таких пар не окажется. 2. Напишем программу на псевдо паскале:

program example1;

var

V:array[1..100,1..100] of integer;

m,n, i,j, c: integer;

flag: boolean;

begin

<ввод размерности массива m*n>

<заполнение ячеек массива>

for i:=1 to m do

repeat

flag:= true;

for j:=1 to n-1 do

if (v[i,j]=0) and (v[i,j+1]<>0) then begin

<поменять их местами>

flag:= false;

end;

until flag;

<Печать массива>

readln;

end.

3.Составим блок схему алгоритма

Детализируем блок "Упорядочиваем 1-ю строку"

Блок схема алгоритма целиком:

4.Приведем программу на языке Паскаль:

program example1;

var

V:array[1..100,1..100] of integer;

m,n, i,j, c: integer;

flag: boolean;

begin

write('Введите размерность массива m-n> '); readln(m,n);

for i:= 1 to m do

for j:= 1 to n do begin

write('V[',i,',',j,']= '); readln(V[i,j]);

end;

for i:=1 to m do

repeat

flag:= true;

for j:=1 to n-1 do

if (v[i,j]=0) and (v[i,j+1]<>0) then begin

c:=v[i,j]; v[i,j]:=v[i,j+1]; v[i,j+1]:=c;

flag:= false;

end;

until flag;

for i:= 1 to m do begin

for j:= 1 to n do write(V[i,j]:2);

writeln

end;

readln;

end.