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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 03.12.2013, 21:01   #1
Настя М
Пользователь
 
Регистрация: 03.12.2013
Сообщений: 22
По умолчанию процедура и массив

Помогите найти ошибку, пожалуйста! (Переменные не менять)

Программа. Дано 80 вещественных чисел. Найти порядковый номер того из них, которое наиболее близко к какому-нибудь целому числу.
Код:
program lab7;
uses crt;
type
a1=array[1 .. 90] of real;
var
i1,m1,n1: integer;
c1,k1: real;
f1:text;

procedure qwe( var a: a1; n:integer; c,k: real; m: integer);
var
i: integer;
begin
for i:=1 to n do
begin
if frac(a[i])>=0.5 then k:=1-frac(a[i])
else k:=abs(0- frac(a[i]));
if k<c then
begin
c:=k;
m:=i;
end;
end;
end;

Begin
assign(f1,'c:\lab7b.txt');
reset(f1);
i1:=1;
c1:=1;
n1:=0;
while not eof(f1) do
begin
readln(f1,a1[i1]);
i1:=i1+1;
n1:=n1+1;
end;
qwe(n1,c1,k1,m1);
writeln(m1);
end.

Последний раз редактировалось Stilet; 03.12.2013 в 22:24.
Настя М вне форума
Старый 03.12.2013, 23:22   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

так?
Код:
program lab7;
uses crt;
type
  a1 = array[1..80] of real;
var
  Mas: a1;
  i1, m1, n1: integer;
  f1: text;

procedure qwe(var a: a1; n: integer; var m: integer);
var
  i: integer;
  c, k: real;
begin
  c := 1.0;
  for i := 1 to n do
  begin
    if abs(frac(a[i])) >= 0.5 then k := 1 - abs(frac(a[i]))
    else k := abs(frac(a[i]));
    if k < c then
    begin
      c := k;
      m := i;
    end;
  end;
end;

begin
  assign(f1, 'd:\lab7b.txt');
  reset(f1);
  i1 := 1;
  n1 := 0;
  while not eof(f1) do
  begin
    readln(f1, Mas[i1]);
    i1 := i1 + 1;
    n1 := n1 + 1;
  end;
  close(f1);
  qwe(Mas, n1, m1);
  writeln(Mas[m1]);
end.
Serge_Bliznykov вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Массив, процедура Sweet-_-Orange Помощь студентам 15 08.02.2012 21:48
Процедура вствки элемента в динамический массив Beren42 Помощь студентам 18 26.03.2011 13:20
массив и процедура bruNET Помощь студентам 0 26.11.2009 18:32
Массив и процедура (Турбо Паскаль) Сэм Помощь студентам 3 10.05.2009 18:43
массив tedit и процедура с ним(delphi) xbIm Помощь студентам 2 21.02.2008 23:57