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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2007, 11:45   #1
Jondeer
Пользователь
 
Регистрация: 27.10.2007
Сообщений: 42
Радость Турбо Паскаль

Задача! При заданных абциссах x1,x2,x3...xn и ординатах y1,y2,y3...yn точек плоскости XOY определить у какого числа этих точек положительна как абцисса,так и ордината, а также найти средннюю ординату всех точек из числа заданных. Можно ли написать код к этой программе по проще???

program points;
const
N=10; {размерность}

var x,y:array[1..10]of integer; {массив Х У}
middle:real; {среднее Y} i:integer;


{заполнение массива случайными числами}
procedure CreateXY;
begin
Randomize;
Writeln('massiv X:');
for i:=1 to N do
begin
x[i]:=Random(10)-Random(10);
Write(x[i],' ');
end;
Writeln;
Writeln('massiv Y:');
for i:=1 to N do
begin
y[i]:=Random(10)-Random(10);
Write(y[i],' ');
end;
Writeln;
Writeln('-------');
end;

{поиск точки из Первой четверти,
т.е. X>0 Y>0}
procedure FindPlus;
var flag:boolean;
begin
flag:=false;
for i:=1 to N do
begin
if (x[i]>0)and(y[i]>0) then
begin
flag:=true;
Write('#',i,' ');
end;
end;
{если таких чисел нет, то сообщим об этом}
if Flag=false then Write('++ NONE');
writeln;
Writeln('-------');
end;

{поиск среднего по Y}
procedure FindMiddle;
var sum:integer;
begin
sum:=0;
middle:=0;
for i:=1 to n do
begin
sum:=sum+y[i];
end;
middle:=sum/n;
Writeln('MIDDLE = ',middle:2:2);
end;

begin
createXY; {создание массивов}
FindPlus; {вывод ++}
FindMiddle;{поиск среднего}

Readln;
end.
Jondeer вне форума Ответить с цитированием
Старый 28.10.2007, 12:32   #2
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

перепиши процедуру вот так (неправильно прочитал задачу) :
Код:
{поиск числа точкек из Первой четверти,
т.е. X>0 Y>0}
procedure FindPlus;
  var  k:integer;
begin
  k:=0;
  for i:=1 to N do
  begin
    if (x[i]>0)and(y[i]>0) then
    inc(k)
  end;
{если таких чисел нет, то сообщим об этом}
  if k=0 then Write('Точек нет') else Write('Kol-vo = ',k);
  writeln;
  Writeln('-------');
end;
А проще: в каком смысле? Без процедур что ли?
Alex21 вне форума Ответить с цитированием
Старый 28.10.2007, 12:38   #3
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию ВОТ ПРОЩЕ

Код:
program Project2;

const
N=10; {размерность}

var x,y:array[1..10]of integer; {массив Х У}
  sum:real; {среднее Y} i:integer;
  k:integer;

begin
  {создание массивов}
  Randomize;
  Writeln('X:   Y:');
  for i:=1 to N do
  begin
    x[i]:=Random(10)-Random(10);
    y[i]:=Random(10)-Random(10);
    Writeln(x[i],'    ',y[i]);
{поиск кол-ва точек из Первой четверти}
      if (x[i]>0)and(y[i]>0) then inc(k);
{сумма ординат}
    sum:=sum+y[i];
  end;

Writeln('Kol-vo = ',k); // вывод числа точер 1-й четверти
Writeln('sred arifm = ',(sum/n):2:2); // ср. арифметическое ординат

Readln;
end.

Последний раз редактировалось Alex21; 28.10.2007 в 12:41.
Alex21 вне форума Ответить с цитированием
Старый 28.10.2007, 12:42   #4
Jondeer
Пользователь
 
Регистрация: 27.10.2007
Сообщений: 42
По умолчанию

Ну да собственно так! Спасибо!!!!
Jondeer вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите пожалуйста с задачей в Турбо Паскаль. Bulvai Помощь студентам 1 25.06.2008 18:09
Задача на Турбо Паскаль "Лабиринт" H[o][o]K Помощь студентам 1 17.12.2007 18:46
Помогите решить 3 задачи на языке Турбо-Паскаль rpg Помощь студентам 3 23.11.2007 20:13
Турбо Паскаль Jondeer Помощь студентам 5 27.10.2007 17:19