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

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

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

> Задача на типовой расчет., Очень важно.
deada11
сообщение 4.06.2007 21:40
Сообщение #1





Группа: Пользователи
Сообщений: 2
Пол: Мужской
Реальное имя: Павел

Репутация: -  0  +


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

решение простое... только когда написал код, возникли некоторые проблемы...
вот код:
program TYPEMATCH;
TYPE matr = array [1..10,1..2] of real;
vec = array [1..10] of real;
VAR a:matr;
m,k,n,i:integer;
b:vec;
xmax, ymax:real;
inp, out: text;
PROCEDURE FirstQuarter (var a:matr; n:integer; var k:integer);
Var i:integer;
Begin
k:=0;
for i:=1 to n do
if (a[i,1]>0) and (a[i,2]>0) then
k:=k+1;
end;
PROCEDURE MostLongDistant (var a:matr; n:integer; var xmax, ymax: real);
Var i:integer;
CDist, MDist: real;
Begin
xmax:=a[1,1];
ymax:=a[1,2];
MDist:=sqrt(sqr(xmax)+sqr(ymax));
for i:=2 to n do
begin
CDist:=sqrt(sqr(a[i,1])+sqr(a[i,2]));
if MDist<Cdist then
begin
MDist:=CDist;
xmax:=a[i,1];
ymax:=a[i,2];
end;
end;
end;
PROCEDURE OutOfFirstQuarter (var a:matr; n:integer; var b:vec; m: integer);
Var i:integer;
Begin
m:=0;
for i:=1 to n do
if (a[i,1]<=0) or (a[i,2]<=0) then
begin
m:=m+1;
b[m,1]:=a[i,1];
b[m,2]:=a[i,2];
end;
end;
BEGIN
assign (inp,'c:\input.pas');
assign (out,'c:\output.pas');
reset(inp);
rewrite(out);
for i:=1 to 10 do
begin
readln (inp,n);
for i:=1 to n do
begin
readln (inp,a[i,1]);
readln (inp,a[i,2]);
end;
FirstQuarter (a,n,k);
if k=n then
begin
MostLongDistant (a,n,xmax,ymax);
writeln(out, xmax:8:4, ymax:8:4);
end
else
begin
OutOfFirstQuarter (a,n,b,m);
for i:=1 to m do
writeln (out, b[m,1], b[m,1]);
end;
close (inp);
close(out);
END.



посмотрите пожалуйста... думаю что ошибок тут хватает...
и еще.. если не трудно... это блочная структура программы... переведите ее в модульную. очень прошу.
Заранее спасибо.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 4.06.2007 21:51
Сообщение #2


Гость






Цитата
думаю что ошибок тут хватает...
На F9 нажимать сам не пробовал? Компилятор тебе подробно все расскажет, какие ошибки и где... Исправляешь все синтаксические ошибки, потом возвращаешься сюда...

(кроме того, что найдет компилятор TP, есть еще:

   for i:=1 to 10 do
begin
readln (inp,n);
for i:=1 to n do { <--- Это - ошибка, вложенный цикл по той же переменной,
но компилятором Турбо Паскаля она не ловится }

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

Сообщений в этой теме


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

 



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