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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 25.02.2018, 15:54   #1
Kamelok
Пользователь
 
Регистрация: 19.11.2017
Сообщений: 36
По умолчанию как добавить в программу процедуры для ввода и обработки массива.

Я тут запутался и допустил ошибки и программа не работает. Если не сложно можете исправить. Задание отсортировать по убыванию методом вставок. Вроде всё работало без под процедур.
Код:
program Insertion;
Const max=1000;
type arr=array[1..max] of integer;
var mas: arr;
i, j, temp, nom, n: integer;
procedure enter(var m: mas);
var
  i: word;
  str: string;
  flag: boolean;
  K: integer;
begin
  write('Выберите способ запонения массива: 1 - вручную, 2 - случайными числами: ');
  repeat
    readln(str);
    if str = '1' then flag := true
    else if str = '2' then flag := false
    else if (str <> '1') and (str <> '2') then                                              writeln('Ошибка! Повторите ввод');
  until (str = '1') or (str = '2');
  writeln('Количество чисел, которые хотите ввести, но не больше',L);
  repeat
    readln(L);
    if (L > N) or (L < 1) then writeln('Ошибка! Повторите ввод');
  until (L <= N) and (L >= 1); 
  if flag = false then 
  begin
    writeln('Введите максимально возможное генерируемое число, от 0 до 1000');
    repeat
      readln(K);
      if(K > 1000) or (K <= 0) then writeln('Ошибка! Повторите ввод');
    until (0 < K) and (k < 1000);
    randomize;
    for i := 1 to L do 
      begin
        m[i] := random(0, K);
        writeln('m', i, '=', m[i]); 
      end;
  end
    else  
  begin
    writeln('Введите числа вручную');
    for i := 1 to L do 
    begin
      write('m[', i, ']='); 
      read(m[i]); 
    end; 
  end;
end;

procedure Insert(mas: arr; n: integer);
begin
for i:=1 to K-1 do
begin
nom:=i+1;
temp:=mas[nom];
for j:=i+1 downto 2 do
begin
if (temp>mas[j-1]) then
begin
mas[j]:=mas[j-1];
nom:=j-1;
end;
mas[nom]:=temp;
end;
end;
end;


procedure conclusion(mas: arr; n: integer);
begin
 write('Sorted array: ');
  for i:=1 to n do write(mas[i], ' ');
 end;
begin 
write(' Number of elements in the array = '); read(n);
 for i:=1 to n do
end.

begin
  writeln('Данная программа находит среди введенных чисел самое большое и самое маленькое и считает разность между ними.');
  enter(m); 
  Insert(mas, n); 
  conclusion; 
end.

Последний раз редактировалось Kamelok; 25.02.2018 в 16:25.
Kamelok вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Составить программу для ввода, вывода и обработки заданной структуры данных - C# SynsWor Помощь студентам 1 18.04.2017 10:12
Процедуры и функции - Заданы три двумерных массива одинаковой размерности. Написать фукнции и процедуры их обработки sekirei Паскаль, Turbo Pascal, PascalABC.NET 8 21.11.2013 15:45
Составить программу для ввода, вывода и обработки заданной структуры данных. Владимир123321 Помощь студентам 10 26.06.2013 13:59
Составить программу для обработки данных во время ввода. Васильева Зинаида Помощь студентам 9 01.11.2010 21:36