• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

    Если вы у нас впервые, загляните на страницу о форуме и правила – там коротко описано, как задать вопрос так, чтобы быстро получить ответ. Чтобы создавать темы и писать сообщения, сначала зарегистрируйтесь, а затем войдите под своим логином.

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по старой ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Создание и использование модулей

Reiderian

Ученик
Регистрация
26 Фев 2014
Сообщения
11
Реакции
0
Баллы
0
Создание и использование модулей

Здравствуйте, помогите пожалуйста с данной задачей. Заранее благодарен!!!
Параметр– массив из N целых чисел(N– константа модуля). Действия:
• нахождение минимального элемента;
• нахождение максимального элемента;
• нахождение суммы элементов массива;
• перестановка элементов массива в обратном порядке.
 
Забыл указать. На паскале.
 
const
N = 20;
var
i, min, max: byte;
sum, tmp: integer;
mas: array [1..N] of integer;
begin
randomize();
writeln('Vhodnoy massiv:');
for i:= 1 to N do
begin
mas:= random(100);
write(mas:3);
end;
min:= mas[1];
max:= mas[1];
sum:= mas[1];
for i:= 2 to N do
begin
if mas> max then max:= mas;
if mas< min then min:= mas;
sum:= sum + mas;
end;
writeln;
writeln('min = ', min);
writeln('max = ', max);
writeln('summa = ', sum);
for i:= 1 to (N+1) div 2 do
begin
tmp:= mas;
mas:= mas[N-i+1];
mas[N-i+1]:= tmp;
end;

writeln('Obratniy massiv:');
for i:= 1 to N do write(mas:3);
readln;
end.
 
Уважаемый poiu, конечно, это всё прекрасно, вот только... одного я тут в упор не вижу: модулей. А ведь, как я понял, именно работа с модулями и составляет суть задания. А потому осмелюсь предложить свой вариант:

1. Модуль (сохранить под именем My_Unit.pas. Другие названия недопустимы! Ну то есть можно поменять, но одновременно имя модуля в первой строке и имя файла - они должны быть строго одинаковыми):
Код:
Unit My_Unit;

Interface

Const
 N=20;

Type
 Arr=Array[1..N] of Byte;

Function Minimum(Q:Arr):Byte;
Function Maximum(Q:Arr):Byte;
Function Sum(Q:Arr):Integer;
Procedure Revers(var Q:Arr);

Implementation

Function Minimum(Q:Arr):Byte;
var i,M:byte;
begin
 M:=Q[1];
 for i:=2 to N do
  if Q[i]<M then M:=Q[i];
 Minimum:=M;
end;

Function Maximum(Q:Arr):Byte;
var i,M:byte;
begin
 M:=Q[1];
 for i:=2 to N do
  if Q[i]>M then M:=Q[i];
 Maximum:=M;
end;

Function Sum(Q:Arr):Integer;
var i:byte; S:Integer;
begin
 S:=0;
 for i:=1 to N do Inc(S,Q[i]);
 Sum:=S;
end;

Procedure Revers(var Q:Arr);
var i,tmp:Byte;
begin
 for i:=1 to (N div 2) do
  begin
   tmp:=Q[i];
   Q[i]:=Q[N-i+1];
   Q[N-i+1]:=tmp;
  end;
end;

End.

2. Сама программа:
Код:
Uses My_Unit;

Var
 A:Arr;
 i:Byte;

Begin
 Randomize;
 Writeln('Initial Array:');
 For i:=1 to N do
  begin
   A[i]:=Random(100);
   write(A[i]:4);
  end;

 Writeln;
 Writeln;

 Writeln('Min= ',Minimum(A));
 Writeln('Max= ',Maximum(A));
 Writeln('Sum= ',Sum(A));
 Writeln;

 Revers(A);

 Writeln('Reversed Array:');
 For i:=1 to N do write(A[i]:4);

 Readln

End.
 
извиняюсь. не внимательно прочел задание. выполнил только его внутренности.
 
Огромное спасибо, буду тестировать.
 
Назад
Сверху