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

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

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

 
 Ответить  Открыть новую тему 
> Найти номер и значение вещественного.
сообщение
Сообщение #1





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

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


Даны 30 вещественных чисел, найти номер и значение того из них, которое наиболее близкок какому-нибудь целому числу:

Моя версия такая:


program pr1;
var
i,n:integer;
min:double;
A: array[0..29] of double; {массив 30 числел}


BEGIN
writeln('Введите вещественное число'); {вводим и распечатываем очредное число, делаем это 30 раз}
for i:=0 to 29 do
begin
read(A[i]);
write(A[i]:0:2,' ');
end;

min:=1000;

for i:=0 to 29 do {ищем номер и значение того числа, которое наиболее близко к какому-нибудь целому числу}
begin
if(abs(A[i]-round(A[i])) < min) then
begin
min:=abs(A[i]-round(A[i]));
n:=i+1;
end;
end;
i:=n-1;
writeln(' '); {выводим результаты}
writeln('Число  ',A[i]:0:2);
writeln('Номер числа  ',n);



Все бы ничего, но раскритиковали эту работу, сказав, что нужно обойтись без массива вообще.

Сообщение отредактировано: retenr -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Можно и без массива. Но ввести и распечатать, а потом пройти еще раз и найти ближайшее к целому - не получится. Сразу вводишь, и сразу сравниваешь... И запоминать придется не (или не только) номер числа, но еще и само число...

Кстати,
Цитата
min:=1000;
- перебор... Единицы уже достаточно, большего отклонения от ближайшего целого не будет...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


volvo, спасибо.

То есть наверно так сделать это решение:


program pr1;
var
i,n:integer;
min, x:double;


BEGIN
min:=1;

for i:=0 to 29 do {вводим и сразу ищем номер и значение того числа, которое наиболее близко к какому-нибудь целому числу}
begin
writeln('Введите вещественное число');
read(x);
if(abs(x-round(x)) < min) then
begin
min:=abs(x-round(x));
n:=i+1;
end;
end;
i:=n-1;
writeln(' '); {выводим результаты}
writeln('Число ',x:0:2);
writeln('Номер числа ',n);



Сообщение отредактировано: retenr -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 4.05.2024 22:03
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name