Предмет: Информатика,
автор: альстофер
Помогите, пожалуйста! Очень вас прошу! Через паскаль! num, res
Написать программу, которая в последовательности натуральных чисел определяет наибольшее, квадрат, которого не превосходит число 225.
Программа получает на вход натуральные числа, количество введенных чисел неизвестно, последовательность чисел заканчивается числом 0 (0 – признак окончания ввода и не входит в последовательность).
Программа должна вывести одно число: наибольшее число в последовательности, квадрат которого не превышает число 225.
Не использовать: const, count и другие
manamahkrit:
Пастулат обозначений, всё! - кроме num и res, остальные запрещённо использовать. Непростительные заклятья)
Смертельные противники goto, напишите приведенную ниже программу без goto и посмотрите, станет ли она от этого короче, понятнее, "правильнее" и т.д.
var i,j,k,n:integer;
label M;
begin
n:=0;
for i:=1 to 1000 do
for j:=1 to 1000 do
for k:=1 to 1000 do
if i*j*k=84 then goto M else n:=n+1;
Writeln('Не нашли');
M:
Writeln(n)
end.
label M;
begin
n:=0;
for i:=1 to 1000 do
for j:=1 to 1000 do
for k:=1 to 1000 do
if i*j*k=84 then goto M else n:=n+1;
Writeln('Не нашли');
M:
Writeln(n)
end.
а, спасибо, а что значит label?
Это не Ваше задание решено, это пример с goto! Не вздумайте его списать в качестве ответа
Ну и главное. Вы написали в вопросе "Не использовать: const, count и другие " - а что же конкретно МОЖНО использовать?
нет,я просто ради примера, label что это?
Вы уже третий раз спрашиваете. Есть учебники, книги по паскалю, поисковики в Интернет. За это время набрать label pascal в поисковике двадцать раз можно было
label [имя метки] это метка, т.е. место в программе, куда можно вернуться в любой момент перейдя по ссылке goto [имя метки]
не просто так спрашивал проходили ли метки
Ответы
Автор ответа:
0
program zadanie;
var
max,num,a :byte;
label metka;
begin
max:=0;
writeln('vvodite chisla');
metka:
readln(a);
if a=0 then
writeln ('max=',max)
else
if a*a>225 then
begin
writeln('Slishkom bolshoe chislo');
goto metka;
end
else
begin
if max<a then max:=a;
goto metka;
end;
readln;
end.
переменную num убери, забыл удалить
Ага! Ну, вот, то, что мне было нужно! Спасибо, огромное!
welcome!
а что такое goto metka?
и label metka?
))))) goto, значит, проходили? или проходили и мимо прошли?
да, нет я имел ввиду что значит label
label [имя метки] это метка, т.е. место в программе, куда можно вернуться в любой момент перейдя по ссылке goto [имя метки] не просто так спрашивал проходили ли метки
странно, что не смутило metka:
Автор ответа:
0
Если квадрат натурального числа не превосходит 225, то само это число не может превосходить √225 = 15.
Алгоритм
Заносим в переменную res (результат) число 0. Оно заведомо меньше любого из натуральных чисел в последовательности.
Читаем очередное число в последовательности. Если оно больше res и при этом не превышает 15, записываем его в res. Если оно равно нулю, чтение прекращаем и выводим значение res.
var
res,num:integer;
begin
res:=0;
repeat
Read(num);
if (num>res) and (num<=15) then res:=num
until num=0;
Writeln(res)
end.
Алгоритм
Заносим в переменную res (результат) число 0. Оно заведомо меньше любого из натуральных чисел в последовательности.
Читаем очередное число в последовательности. Если оно больше res и при этом не превышает 15, записываем его в res. Если оно равно нулю, чтение прекращаем и выводим значение res.
var
res,num:integer;
begin
res:=0;
repeat
Read(num);
if (num>res) and (num<=15) then res:=num
until num=0;
Writeln(res)
end.
Похожие вопросы
Предмет: Математика,
автор: ahmatkulovdilmuhamma
Предмет: Қазақ тiлi,
автор: olmeszhanel09
Предмет: Английский язык,
автор: kristri1111
Предмет: Математика,
автор: катя1580