Написать в Паскале процедуру с изменяемым параметром. помогите хотя бы с одним. Уровень...

0 голосов
110 просмотров

Написать в Паскале процедуру с изменяемым параметром. помогите хотя бы с одним.

Уровень A. Напишите процедуру, которая переставляет три переданные ей числа в порядке возрастания.
Пример:
Введите три натуральных числа:
10 15 5
5 10 15



Уровень B. Напишите процедуру, которая сокращает дробь вида M/N. Числитель и знаменатель дроби передаются как изменяемые параметры.
Пример:
Введите числитель и знаменатель дроби:
25 15
После сокращения: 5/3


Информатика (17 баллов) | 110 просмотров
0

5 баллов за 2 задачи.... это уже жадность))

Дан 1 ответ
0 голосов
Правильный ответ
Уровень А
type
  num=integer; { можно поменять на real, longint, даже char... }

procedure Swap(var a,b:num);
{ меняет местами значения a и b }
var
  t:num;
begin
  t:=a; a:=b; b:=t
end;

procedure Moving(var a,b,c:num);
begin
  if a>b then begin
    Swap(a,b);
    if b>c then begin
      Swap(b,c);
      if a>b then Swap(a,b)
    end
  end
  else begin
    if b>c then Swap(b,c);
    if a>b then Swap(a,b)
  end
end;

var
  a,b,c:num;
begin
  Write('Введите три числа: '); Read(a,b,c);
  Moving(a,b,c);
  Writeln(a,' ',b,' ',c)
end.

Уровень В
function Gcd(a,b: longint): longint;
{ Нахождение НОД }
var
  i: longint;
begin
  while b <> 0 do
  begin
    a := a mod b;
    i := b; b := a; a := i
  end;
  gcd := a
end;

procedure ShortFraction(var m,n:longint);
var
  k:longint;
begin
  k:=Gcd(m,n);
  m:=m div k; n:=n div k
end;

var
  a,b:longint;
begin
  Write('Введите числитель и знаменатель дроби: '); Readln(a,b);
  ShortFraction(a,b);
  Writeln('Дробь после сокращения равна ',a,'/',b)
end.

Тестовое решение:
Введите числитель и знаменатель дроби: 25 15
Дробь после сокращения равна 5/3

(142k баллов)
0

Напишите, какие числа вводили

0

Только что проверил: Введите три числа: 10 15 5
5 10 15

0

значит, что-то с Паскалем, потому что не меняет. раз 10 перепроверяла. спасибо большое, вы меня спасли!!!

0

Версия Pascal.ABC.NET. Сейчас проверю еще в древнем Borland Pascal 7.01 - отпишусь

0

у меня тоже Паскаль.авс.net. я уже попросила знакомого - у него поменялось. это все глюки моей программы.

0

Turbo Pascal Version 7.0 Copyright (c) 1983,92 Borland International
Введите три числа: 10 15 5
5 10 15

0

Все работает. Вообще-то я никогда не помещаю ответов, не протестировав программ.

0

спасибо большое, вы правда невероятно помогли.

0

Заканчивайте через мобилку общаться, если заходить с обычного компьютера, будет возможность обмениваться личными сообщениями через профиль.

0

Я отправил ЛС