Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями:
F(n) = n*n + 2*n + 1, при n > 25
F(n) = 2*F(n+1) + F(n+3), при чётных n ≤ 25
F(n) = F(n+2) + 3*F(n+5), при нечётных n ≤ 25
Определите количество натуральных значений n из отрезка [1; 1000], для которых
значение F(n) не содержит цифру 0.
Ну, без понятия на каком языке писать - задача не решаема.
Однако, на "метаязыке":
задать массив МАТРИЦА[5,5];
получить ввод в ВВОД;
если ВВОД = 's', то {
СУММА = 0;
X = 1;
продолжать, пока X <= 5 {
СУММА = СУММА + МАТРИЦА[X,X];
X = X + 1;
}
вывести СУММА;
} иначе, если ВВОД равен 'a' или 'b' или 'c', то {
X = 1;
продолжать, пока X <= 5 {
СреднАрифм = 0;
Y = 1;
продолжать, пока Y <= 5 {
СреднАрифм = СреднАрифм + МАТРИЦА[X,Y];
Y = Y + 1;
}
вывести СреднАрифм / 5;
X = X + 1;
}
} иначе, если ВВОД = 'm', то {
МИНИМУМ = МАТРИЦА[1,1];
МАКСИМУМ = МАТРИЦА[1,1];
X = 1;
продолжать, пока X <= 5 {
Y = 1;
продолжать, пока Y <= 5 {
если МАТРИЦА[X,Y] < МИНИМУМ то МИНИМУМ = МАТРИЦА[X,Y];
если МАТРИЦА[X,Y] > МАКСИМУМ то МАКСИМУМ = МАТРИЦА[X,Y];
Y = Y + 1;
}
}
вывести МИНИМУМ;
вывести МАКСИМУМ;
}
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
type
tBook=record
author:string[30];
naim:string[50];
pages:integer;
godizd:integer
end;
begin
var f:file of tBook;
Rewrite(f,'books.dat');
Writeln('Ввод данных по книгам');
var s1,s2:string;
var i1,i2:integer;
var book:tBook;
repeat
s1:=ReadlnString('Автор или * для окончания ввода:');
if s1<>'*' then begin
s2:=ReadlnString('Название книги:');
i1:=ReadlnInteger('Количество страниц:');
i2:=ReadlnInteger('Год издания:');
(book.author,book.naim,book.pages,book.godizd):=(s1,s2,i1,i2);
Write(f,book)
end
until s1='*';
Writeln('*** Ввод завершен ***');
f.Close
end.
Тестовое решение
Ввод данных по книгам
Автор или * для окончания ввода: Жюль Верн
Название книги: 80 тысяч километров под водой
Количество страниц: 573
Год издания: 1951
Автор или * для окончания ввода: Сергей Лукьяненко
Название книги: Дозор
Количество страниц: 934
Год издания: 2004
Автор или * для окончания ввода: Жюль Верн
Название книги: Властелин мира
Количество страниц: 104
Год издания: 2011
Автор или * для окончания ввода: *
*** Ввод завершен ***
2. Программа для выборки
// PascalABC.NET 3.1, сборка 1239 от 08.05.2016
type
tBook=record
author:string[30];
naim:string[50];
pages:integer;
godizd:integer
end;
begin
var f:file of tBook;
Reset(f,'books.dat');
var s:=ReadlnString('Автор книги:');
var y:=Readinteger('Год издания, не ранее:');
var k:=0;
var book:tBook;
while not f.Eof do begin
Read(f,book);
if (book.author=s) and (book.godizd>=y) then begin
Writeln(book);
Inc(k)
end;
end;
if k=0 then Writeln('Таких книг не найдено');
f.Close
end.
Тестовое решение
Автор книги: Жюль Верн
Год издания, не ранее: 2005
(Жюль Верн,Властелин мира,104,2011)