Помощь - Поиск - Пользователи - Календарь
Полная версия: 5 простейших задач
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
9классница
Очень прошу помочь решить следующие задачи
1. Заданы стороны треугольника a b c . Построить алгоритм вычисления его S по Герону
2. Заданы произвольные числа a b c. Построить алгоритм,определяющий, может ли существовать треугольник с длинами сторон, равными заданным числам.
3. Составить алгоритм определение признака високосного года по его номеру.
4. Используя алгоритм високосный год определить признак того, что сумма дней 2 указанных лет больше 730
5. Составить алгоритм нахождения наибольшего общего делителя 2 чисел N1 и N2
Заранее благодарна smile.gif
volvo
1. Эта функция вычисляет площадь треугольника по формуле Герона
Код

function S(a, b, c: real): real;
var p:real;
begin
 {площадь по теореме Герона}
 p:=(a+b+c)/2; {полупериметр}
 S:=sqrt(p*(p-a)*(p-b)*(p-c));
end;


2. Функция IsLegal возвращает True если треугольник может существовать, иначе - False
Код

function isLegal(a, b, c: real): boolean;
begin
 isLegal := not (((a+b)<c) or ((a+c)<b) or ((c+b)<a))
end;


3. По определению, номер високосного года делится на 4, кроме тех, которые делятся на 100, но не делятся на 400.

Например: 2004, 2008, 2012, 2016 - високосные, 1900, 2100, 2200, 2300 - невисокосные, 2000, 2400 - високосные. Отсюда программа:
Код

function bsYear(n: Word): Boolean;
 begin
   bsYear := ((n mod 4) = 0) and
     not (((n mod 100) = 0) and ((n mod 400) <> 0))
 end;

begin
 writeln(bsYear(1972))
end.


4.
Код

Var
 yr1, yr2: Word;
Begin
 ReadLn(yr1); ReadLn(yr2);
 If (bsYear(yr1) or bsYear(yr2)) Then
   WriteLn('сумма дней больше 730')
 Else WriteLn('Сумма дней не больше 730')
End.


5.
Код

function GCD(const m, n: Word): Word;
var p, n1, m1: Word;
begin
 if (n = 0) or (m = 0) then GCD := 0
 else
   begin
     if m < n then
       begin
         n1 := m; m1 := n
       end
     else
       begin
         n1 := n; m1 := m
       end;
     while n1 > 0 do
       begin
         p := m1 mod n1;
         m1 := n1; n1 := p
       end;
     GCD := m1
   end;
end;

Begin
 WriteLn(GCD(54, 36)); {18}
End.
9классница
Большое спасибо! Вы мне очень помогли...

:D
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.