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

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

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

> Проверьте программку!, Функции
Юля
сообщение 14.11.2007 20:42
Сообщение #1


Гость






Проверьте пожалуйста программку! В ней что-то не так, но не пойму что.
Данную программу нужно было составить с помощью функций.

{В массиве все элементы, стоящие после минимального, уменьшить на 10.}

Program Lab4Var6;
Const
maxN=10;
Type
array1=array[1..10] of integer;
var
a: array1;
n: integer;
i: integer;
min, min_i: integer;

{Определение процедур}

procedure ReadArray; {ReadArray - процедура ввода массива с клавиатуры}
begin
repeat {Ввод количества элементов}
write('Введите n:');
readln(n);
until (n>=1)and(n<=maxN);
for i:=1 to n do {Ввод элементов поодиночке}
begin
write('a[',i,']=');
readln(a[i]);
end;
end; {Конец процедуры ReadArray}

function FindMin: integer; {FindMin - процедура поиска индекса минимального элемента}
var
min_i: integer; {Локальная переменная, в которой хранится индекс min до возвращения из функции}
i: integer; {Локальная переменная, счётчик цикла}
begin
min_i:=a[1]; {Ищем индекс min элемента}
for i:=1 to n do
if a[i]<min_i then min_i:=a[i];
FindMin:=min_i; {Функция возвращает найденный индекс}
end; {Конец процедуры FindMin}

procedure Remember;
begin
for i:=1 to n do
if a[i]=min then
begin
min_i:=i;
end;
writeln ('Минимальный элемент:', min_i);
end;

procedure Diminish; {Diminish - процедура уменьшения элементов, стоящих после min, на 10}
begin

for i:=min_i+1 to n do {Уменьшаем элементы на 10}
a[i]:=a[i]-10;
end; {Конец процедуры Diminish}

procedure PrintArray; {PrintArray - процедура вывода массива на экран}
begin
writeln; {Выводим массив}
for i:=1 to n do
write(A[i]:3);
writeln;
end; {Конец процедуры PrintArray}

{Основная часть программы}
begin
ReadArray; {Ввод массива}
min_i:=FindMin; {Поиск индекса минимального элемента}
Remember;
Diminish; {Уменьшение элементов}
PrintArray; {Вывод массива}
end.


М
Используй теги для программного текста!
-- Лопарь

 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Malice
сообщение 14.11.2007 21:10
Сообщение #2


Профи
****

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

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


в функции FindMin немного напутано, попробуй так:
function FindMin: integer; {FindMin - процедура поиска индекса минимального элемента}
var
min_i: integer; {Локальная переменная, в которой хранится индекс min до возвращения из функции}
i: integer; {Локальная переменная, счётчик цикла}
begin
min_i:=1; {Ищем индекс min элемента}
for i:=2 to n do
if a[i]<a[min_i] then min_i:=i;
FindMin:=min_i; {Функция возвращает найденный индекс}
end; {Конец процедуры FindMin}


и здесь тоже не понятно:
procedure Remember;
begin
min:=a[min_i];
writeln ('Минимальный элемент:', min);
end;


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

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


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

 



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