Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 25.12.2011, 14:32   #1
Ия Ильина
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 28
По умолчанию a^2+b^2=c^2

здравствуйте
помогите решать задачу на паскале
для 9 класса

найти все натуральные числа a,b,c из интервала от 1 до 20, для которых выполняется равенство a^2+b^2=c^2

я пробовала решить, вот что получилось: program zadacha_16;
var
a:integer;
b:integer;
c:integer;
a1:integer;
b1:integer;
c1:integer;
i:integer;
cx:integer;
begin
for a:=1 to 20 do
a1:=a*a;
for b:=1 to 20 do
b1:=b*b;
cx:=a1+b1;
for c:=1 to 20 do
c1:=c*c;
end;
if c1=cx then
writeln ('a=',a,'','b=',b,'','c=',c,'-пифагоровы');
end.



заранее спасибо!

МАССИВЫ И ВЛОЖЕННЫЕ ЦИКЛЫ НЕ ИСПОЛЬЗОВАТЬ В РЕШЕНИИ
Ия Ильина вне форума Ответить с цитированием
Старый 25.12.2011, 15:00   #2
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

Цитата:
Сообщение от Ия Ильина Посмотреть сообщение
ВЛОЖЕННЫЕ ЦИКЛЫ НЕ ИСПОЛЬЗОВАТЬ В РЕШЕНИИ
тогда хз как, скорее всего есть какой то хитрый алгоритм для поиска таких чисел
Код:
var
    m, n    : integer;
    a, b, c : integer;   // искомые числа
    k       : integer;     // место, на котором заканчиваем поиск a 
    b2      : integer;
    count   : integer;
begin
    writeln('Input lower border n');
    readln(n);
    writeln('Input higer border m');
    readln(m);
    
    c := integer( Trunc(n * sqrt(2)) ) + 1;
    count := 0;
    while (c <= m) do
    begin
        k := integer (Trunc(c / sqrt(2)) );
        for a := n to k do
        begin
            b2 := c * c - a * a;
            b := integer (Trunc(sqrt(b2)) );
            if (b * b = b2) then
            begin
                count := count + 1;
                writeln('"', count, '" ', a : 3, b : 3, c : 3);
            end;
        end;
        c := c + 1;
    end;
    if (count = 0) then
       writeln('Not found');
    readln;
End.
google

Последний раз редактировалось rUs_LAN; 25.12.2011 в 15:12.
rUs_LAN вне форума Ответить с цитированием
Старый 25.12.2011, 15:16   #3
Ия Ильина
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 28
По умолчанию

что такое m и n
и что такое Trunc
??
Ия Ильина вне форума Ответить с цитированием
Старый 25.12.2011, 15:23   #4
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Код:
for a:= 1 to 20 do
  for b:= 1 to 20 do
    for c:= 1 to 20 do
      if (a*a + b*b = c*c) then
        writeln ('a=',a,'','b=',b,'','c=',c,'-пифагоровы');
viron вне форума Ответить с цитированием
Старый 25.12.2011, 15:32   #5
Ия Ильина
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 28
По умолчанию

вложенные циклы использовать нельзя!
Ия Ильина вне форума Ответить с цитированием
Старый 25.12.2011, 15:45   #6
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

n -1 m - 20
насколько я понял, Паскаля или Дельфи нет так что я не имею возможности проверить.
trunc http://delphibasics.ru/Trunc.php
rUs_LAN вне форума Ответить с цитированием
Старый 25.12.2011, 15:51   #7
Ия Ильина
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 28
По умолчанию

trunc
не проходили!
Ия Ильина вне форума Ответить с цитированием
Старый 25.12.2011, 16:01   #8
rUs_LAN
Форумчанин
 
Регистрация: 15.11.2008
Сообщений: 577
По умолчанию

Тили-тили трали-вали
Это мы не проходили
Это нам не задавали
rUs_LAN вне форума Ответить с цитированием
Старый 25.12.2011, 16:10   #9
viron
Форумчанин
 
Аватар для viron
 
Регистрация: 02.12.2011
Сообщений: 110
По умолчанию

Trunc(x) просто отбрасывает дробную часть у x и возвращает целое число
Код:
Trunc(5.3) = 5;
Trunc(5.8) = 5;

Последний раз редактировалось viron; 25.12.2011 в 16:13.
viron вне форума Ответить с цитированием
Старый 25.12.2011, 16:17   #10
Ия Ильина
Пользователь
 
Регистрация: 25.12.2011
Сообщений: 28
По умолчанию

а чем его можно заменить?
Ия Ильина вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск