Показать сообщение отдельно

  #2203  
Старый 10.01.2010, 19:32
DJeFRY_RASH
Новичок
Регистрация: 07.04.2009
Сообщений: 19
Провел на форуме:
35427

Репутация: 3
По умолчанию

Ребят, помогите плиз, завтра сдавать ...

Код:
program xyz;

uses
  SysUtils;

Function Ru ( S : string ) : string ;
VAR
             T : string ;			             { временная строка}
	i : integer ;			             { номер символа в строке }
	code : byte ;			             { код символа }
BEGIN
	T := S ;				             { получает значение параметра }
	FOR i := 1 TO Length ( S ) DO	{ для всех символов строки S}
	BEGIN				{ изменяет кодировку символов кириллицы }
		code := Ord ( S[ i ] ) ;		{ определяет код символа}
		CASE code OF		{ ПРОПИСНЫЕ БУКВЫ }
		192 .. 197: T[ i ] :=Chr(code-64) ;	{ А-Е: 192-197	->128-133}
		168: T[ i ] :=#240;			{ Ё: 168->240}
		198 .. 223: T[ i ] :=Chr(code-64);	{ Ж-Я	: 198-223->128-133}													{ строчные буквы }
		224 .. 229: T[ i ] :=Chr(code-64);	{ а-е	: 224-229->160-165}
		184: T[ i ] :=#241;			{ ё: 184	->241}
		230 .. 239: T[ i ] :=Chr(code-64);	{ е-п: 230-239->166-175}
		240 .. 255: T[ i ] :=Chr(code-16);	{ р-я: 240-255->224-239}
		END ;
	END ;
	Ru := T ;					{ возвращает значение временной строки }
END;

VAR
     i,j,k,n,temp:integer;                // искомые числа
     repeat_it:boolean;                   // зацикливание программы (True/False)
     ans:char;                                  // используется для получения согласия для продолжения работы программы
     label                                          // идентификатор
     p1;

Function IntSqrt(temp:integer):real;                       // функция для вычисления квадратного корня.
VAR
    x:real;
    t:real;
begin                                                                              // начало функции
    x:=sqrt(temp);                                                          // извлечение квадратного корня из числа.
    if (x-round(x))=0 then t:=x                                  // Если от х отнять округленный х будет равно нулю, тогда t=x.
    else t:=0;                                                                // Либо t=0.
end;                                                


begin
Writeln(Ru('Программа находит все натуральные числа, меньшие чем N, для которых выполняется соотношение a*a + b*b = c*c. [a,b,c < N]'));
Writeln;                             // ...
      Writeln(Ru('Автор программы ...'));   // Вывод информации на экран об авторе программы.
      Writeln;                            // ...
      Writeln('...');                         // Вывод на экран - e-mail автора программы.
      Writeln;                                                                  
    p1:                                                                      // Возврат в это место при ошибке или при повторном вводе данных.
    repeat_it:=true;                                                // Зацикливание программы, True-правда.
    while repeat_it=true do begin
 Write(Ru('Введите число, которое вы хотите проверить: '));                // ...
    read(temp);
    Writeln('OTBET: ',IntSqrt(temp):6:0);        // Отправить temp на обработку в функцию 'Formula()' и вывести результат на экран.
    Writeln;                                                             // ...
    Write(Ru('Введите N: '));                              // ...
    Read(n);                                                            // Ввод числа N
    for i:=1 to N-1 do                                             // Увеличиваем переменную результата в N-1 раз.
    for j:=1 to N-1 do                                             // Увеличиваем переменную результата в N-1 раз.
    for k:=1 to N-1 do                                            // Увеличиваем переменную результата в N-1 раз.
    if i*i+j*j=k*k then Writeln('a=',i:4,';    b=',j:4,';    c=',k:4);      // Если i*i+j*j=k*k, то выводятся на экран все возможные варианты решения этого уравнения.
    Writeln;                                                            // ...
    Write(Ru('Вы хотите продолжить работу с программой ? (Y/N): '));          // Предложить продолжить работу с программой.
        Readln;
    readln(ans);                                                      // Получить согласие.
    writeln;                                                                // ...
    if (ans='Y') or (ans='y') or (ans=Ru('Н')) or (ans=Ru('н')) then GoTo p1; // Если согласие получено - возврат к началу.
    break;                                                                  

    end;
end.
Собственно если ввожу N = 6
то выводит ответ
a = 3 b = 4 c = 5
a = 4 b = 3 c = 5
то есть нужно чтобы в случае если "с" совпадает несколько раз, тогда чтобы выводилось 1 раз.
 
Ответить с цитированием