школьные олимпиады по программированию.Решение и разбор задач.

var n,m,a,k,r,i,j:integer;

begin
assign(input,'input.txt');
assign(output,'output.txt');
reset(input);
rewrite(output);
read(n,m);
for i:=1 to n do
for j:=1 to m do
begin
read(a);
k:=0;
repeat
inc(k);
until k*k>=a;
if k*k=a then inc(r);
end;
write(r);
end.

Решение и разбор задачи

Задача 3.Полные квадраты.
Определить сколько чисел в целочисленной таблице являются полными квадратами. Формат входных данных: в первой строке количество строк и количество столбцов матрицы, потом сама матрица.
INPUT.TXT
2 2
1 3
9 16
OUTPUT.TXT
2

Алгоритм

1)из входного файла input.txt считываем из первой строки размеры таблицы n*m

2)в двойном цикле считываем последовательно элементы таблицы

3)далее в цикле с постусловием организуем рост чисел "точных квадратов" до тех пор пока они не превышает данный элемент таблицы, внутри тела цикла генерация чисел вида 1,4,9,16 и тд.

4) если элемент таблицы является полным квадратом генерируем счетчик и далее проверяем следующий элемент таблицы

5)вывод количества чисел - полных квадратов

Знать:
  • понятие матрицы,элементы матрицы,индексы элемента матрицы
  • оператор выбора "if <условие> then <оператор>"
  • циклы с параметром for.., с предусловием while..., с постусловием repeat...


Уметь:
  • работать с входными и выходными файлами input.txt output.txt
  • генерировать числа - точные квадраты
домой
Hosted by uCoz