IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> 5 простейших задач
9классница
сообщение 12.12.2004 22:19
Сообщение #1


Гость






Очень прошу помочь решить следующие задачи
1. Заданы стороны треугольника a b c . Построить алгоритм вычисления его S по Герону
2. Заданы произвольные числа a b c. Построить алгоритм,определяющий, может ли существовать треугольник с длинами сторон, равными заданным числам.
3. Составить алгоритм определение признака високосного года по его номеру.
4. Используя алгоритм високосный год определить признак того, что сумма дней 2 указанных лет больше 730
5. Составить алгоритм нахождения наибольшего общего делителя 2 чисел N1 и N2
Заранее благодарна smile.gif
 К началу страницы 
+ Ответить 
volvo
сообщение 12.12.2004 22:40
Сообщение #2


Гость






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.


Сообщение отредактировано: volvo - 12.12.2004 23:06
 К началу страницы 
+ Ответить 
9классница
сообщение 13.12.2004 0:18
Сообщение #3


Гость






Большое спасибо! Вы мне очень помогли...

:D
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 18.07.2025 17:11
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"