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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2008, 18:45   #1
BR@BUS
Пользователь
 
Аватар для BR@BUS
 
Регистрация: 14.01.2008
Сообщений: 14
По умолчанию помощь с решением следующих задач

Здраввствуйте. Вот мне нужна помощь с решением следующих задач:

1). Даны натуральные числа n, a1,…,an, где n≤2500. Найти члены ak последовательности a1,…,an, удовлетворяющие условию 2k< (ak-1+ak+1)/2, и определить их количество.
2) Треугольник задан координатами своих вершин.Найти периметр треугольника.
3) Даны действительные положительные числа a,b,c,d. Выяснить,можно ли прямоугольник со сторонами a,b уместить внутри прямоугольника со сторонами c,d так,чтобы каждая из сторон одного прямоугольника была параллельно или перпердикулярна каждой стороне второго прямоугольника.

И это все надо написать на паскале.... Пожалуйста помогите, очень надо...
BR@BUS вне форума Ответить с цитированием
Старый 14.01.2008, 19:02   #2
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

2. вводим три вершины
Код:
read(x1,y1,x2,y2,x3,y3);
Находим их длины
Код:
d1:=sqrt(sqr(x1-x2)+sqr(y1-y2));
d2:=sqrt(sqr(x2-x3)+sqr(y2-y3));
d3:=sqrt(sqr(x3-x1)+sqr(y3-y1));
Теперь находим периметр
Код:
p:=d1+d2+d3;
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 14.01.2008, 19:08   #3
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

3.Вводим a,b,c,d
Код:
read(a,b,c,d);
Теперь сравниваем на сравнение
Код:
if ((a<=c) and (b<=d)) or ((a<=d) and (b<=c)) then writeln('Поместиться') else writeln('Не поместиться');
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 14.01.2008, 19:11   #4
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

2*k< (a[k-1]+a[k+1])/2
Верна ли моя догадка,что k-1 и k+1 это индексы!!!?
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 14.01.2008, 19:50   #5
BR@BUS
Пользователь
 
Аватар для BR@BUS
 
Регистрация: 14.01.2008
Сообщений: 14
По умолчанию

Tayfun : да это индексы

спасибо за первые 2 задачки.

Цитата:
Сообщение от Tayfun Посмотреть сообщение
2*k< (a[k-1]+a[k+1])/2
Верна ли моя догадка,что k-1 и k+1 это индексы!!!?
2 в степени k
k-1 и k+1 это индексы для a

Последний раз редактировалось Alex21; 15.01.2008 в 11:45.
BR@BUS вне форума Ответить с цитированием
Старый 14.01.2008, 20:43   #6
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Цитата:
Сообщение от BR@BUS Посмотреть сообщение
Tayfun : да это индексы
Ну тогда проблем нету...

Вводим n и исходный массив
Код:
read(n);
for i:=1 to n do
read(a[i]);
Находим количество членов поледовательности удовлетворяющих условию
Код:
for k:=1 to n do
if 2*k< (a[k-1]+a[k+1])/2 then begin write(a[k],' '); t:=t+1;end;
Выводим найденно нами количество
Код:
writeln(t);
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 14.01.2008, 20:55   #7
BR@BUS
Пользователь
 
Аватар для BR@BUS
 
Регистрация: 14.01.2008
Сообщений: 14
По умолчанию

Спасибо огромное! тема закрыта =)
BR@BUS вне форума Ответить с цитированием
Старый 19.01.2008, 15:17   #8
BR@BUS
Пользователь
 
Аватар для BR@BUS
 
Регистрация: 14.01.2008
Сообщений: 14
По умолчанию

Даны натуральные числа n, a1,…,an, где n≤2500. Найти члены ak последовательности a1,…,an, удовлетворяющие условию
2*k< (ak-1+ak+1)/2, и определить их количество.


Код:
program test;
var
 a: array [1..2500] of integer;
 n,k,t,i: integer;
 begin
 read(n);                                //    Вводим   n и исходный массив
   for i:=1 to n do   
 read(a[i]);   
   t:=0;

   for k:=1 to n do          //    Находим кол-во членов последовательности  удовлетворяющих условию
   if 2*k< (a[k-1]+a[k+1])/2 then begin 
    write(a[k],' '); 
   t:=t+1;
 end;
   
 writeln(t);      //   Вывод найденного кол-ва   
  readln;
end.
Неработает. Помогите пожалуйста(

Последний раз редактировалось Alex21; 19.01.2008 в 17:25. Причина: код заключаем в теги
BR@BUS вне форума Ответить с цитированием
Старый 19.01.2008, 15:25   #9
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

Неправильно считает или ссылаетсяна ошибку?

Код:
for i:=1 to n do 
read(a[i]);
А чему примерно должно раняться n?
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...

Последний раз редактировалось Карась; 19.01.2008 в 15:28.
Карась вне форума Ответить с цитированием
Старый 19.01.2008, 15:39   #10
BR@BUS
Пользователь
 
Аватар для BR@BUS
 
Регистрация: 14.01.2008
Сообщений: 14
По умолчанию

Цитата:
Сообщение от Карась Посмотреть сообщение
Неправильно считает или ссылаетсяна ошибку?

Код:
for i:=1 to n do 
read(a[i]);
А чему примерно должно раняться n?
где n≤2500.
BR@BUS вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
нужна помощь с решением следующих задач! => f1n!Sh Помощь студентам 10 13.02.2008 23:03