Просмотр содержимого документа
«Задание "Массивы - 1"»
Массивы-1.
Напишите программу, которая заполняет массив первыми N натуральными числами в обратном порядке (начиная с последнего) и выводит его.(Например при N=5 вывод: 5,4,3,2,1)
Массив длиной 10 заполнить элементами арифметической прогрессии, первый элемент и разность которой задаются с экрана.Распечатать элементы массива, оканчивающихся на 7 или 4. Сообщить, если таковых нет.
Найти сумму элементов массива, заданного эл-тами степеней 2 до 10-той (1,2,4,8,16…1024).
Ряд чисел Фибоначчи задается следующим образом: первые два числа равны 1 (F 1 = F 2 =1), а каждое следующее равно сумму двух предыдущих, т.е F3=1+1=2, F4=F2+F3=1+2=3 и т.д. Напишите программу, которая вводит натуральное число N и заполняет массив из N элементов первыми N числами Фибоначчи. Вывести массив на экран.
Для заданного положительного вещественного числа A необходимо найти минимальное целое число K, при котором выполняется неравенство
. Упрощенная версия: посчитать сумму ряда для введенного К.
24-50.Дано натуральное число N, не превосходящее 108. Необходимо найти и вывести число, которое получится при записи N справа налево и удалении всех единиц. Ведущие нули выводить не надо. Если в числе N нет цифр кроме единиц и нулей, необходимо вывести 0. Например, при вводе числа 1984 нужно вывести 489, а при вводе 2001 нужно вывести 2. Для решения этой задачи ученик написал такую программу:
var n, m: longint;
d: integer;
begin
read(n);
m := 0;
while n=1 do begin
d := n mod 10;
if d 1 then begin
m := 10*d + m;
end;
n:= (n – d) div 10;
end;
write(m);
end.
Последовательно выполните следующее.
Напишите, что выведет эта программа при вводе числа 1984.
Приведите пример числа, при вводе которого программа выдаст верный ответ.
Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки: выпишите строку, в которой сделана ошибка, и приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.
24-54.Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число x, не превосходящее 1000, и выводится количество значащих цифр в двоичной записи этого числа. Программист торопился и написал программу неправильно.
var x,cnt: integer;
begin
readln(x);
cnt := 0;
while x 0 do begin
cnt:=cnt + x mod 2;
x := x div 10
end;
writeln(cnt)
end.
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 15.
2. Приведите пример такого числа x, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.
24-56.Для заданного положительного вещественного числа A необходимо найти минимальное целое число K, при котором выполняется неравенство
. Для решения этой задачи ученик написал такую программу:
var a, s: real;
k: integer;
begin
read(a);
k := 1;
s := 1;
while sa do begin
k := k + 1;
s := 1.0/k;
end;
write(k);
end.
Последовательно выполните следующее.
1. Напишите, что выведет эта программа при вводе числа 0.4.
2. Сколько существует натуральных чисел А, при вводе которых программа выведет ответ 2?
3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.