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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2017, 14:13   #11
dastreba
Пользователь
 
Регистрация: 29.11.2017
Сообщений: 63
По умолчанию

Кароче,нада чтоб в программе я все значения вводил сам,а не чтоб само заполнялось.
А так выходит,что я просто ввожу к-ство элементов,а программа сама заполняет остальное числами от 1 до 5.

В той программе которую я написал в своем 1 сообщении все работало так-же как и в той что мне отредактировали.
Я не так описал проблемму,я не знаю как сделать чтоб значения вписывал я,а не чтоб автозаполнялося.
dastreba вне форума Ответить с цитированием
Старый 29.11.2017, 14:22   #12
dastreba
Пользователь
 
Регистрация: 29.11.2017
Сообщений: 63
По умолчанию

как-то так
dastreba вне форума Ответить с цитированием
Старый 29.11.2017, 14:51   #13
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Убрать рандом и сделать ручной ввод значений:

Код:
for i := 1 to n do
begin
  Write('Введите ', i, ' элемент массива: ');
  ReadLn(A[i]);
end;
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 29.11.2017, 14:51   #14
dastreba
Пользователь
 
Регистрация: 29.11.2017
Сообщений: 63
По умолчанию

Вот так правильно,только еще 1 вопрос:как присвоить последнему элеиенту-0?

Программа которая так как просят в задании (только нада присвоить last элементу 0.

Код:
program lab_7;

{$APPTYPE CONSOLE}

uses
  SysUtils;

const
nmax = 100;

var
A: array[1..nmax] of integer;
i, imin, n: byte;

begin
repeat
  write('Enter the number of items < ', nmax, ': ');
  readln(n);
until n in [1..nmax];
for i := 1 to n do
  read(A[i]);
imin := 1;
for i := 2 to n do
   if A[i] < A[imin] then imin := i;
writeln('Min = ', A[imin]);
dec(n);
for i := imin to n do
   A[i] := A[i + 1];
for i := 1 to n do
   write(A[i]:4);
   readln;
   readln;
end.
dastreba вне форума Ответить с цитированием
Старый 29.11.2017, 15:12   #15
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от dastreba Посмотреть сообщение
Код:
for i := 2 to n do
   if A[i] < A[imin] then imin := i;
writeln('Min = ', A[imin]);
dec(n);
for i := imin to n do
   A[i] := A[i + 1];
заменить на:
Код:
for i := 2 to n do
   if A[i] < A[imin] then imin := i;
writeln('Min = ', A[imin]);

for i := imin to n-1 do
   A[i] := A[i + 1];
A[n] := 0;
dec(n);
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2017, 15:19   #16
Sciv
Старожил
 
Аватар для Sciv
 
Регистрация: 16.05.2012
Сообщений: 3,211
По умолчанию

Код:
for i := 1 to n do
  read(A[i]);
Учтите, что при такой записи все элементы массива придётся вводить в строчку через пробел. Случайное нажатие Enter - и массив уйдёт в обработку. Ввёл значений больше/меньше, чем n - ошибка.

ReadLn - ввод каждого элемента по энтеру - решает эти проблемы.

А вот ответ на Ваш вопрос :

Код:
for i := imin to n do
   A[i] := A[i + 1];
A[n + 1] := 0;
UPDATE. Пока писал - уже ответили.

Сергей, у него там декремент N перед циклом, не нужно n-1. Я сам не сразу увидел
Начал решать проблему с помощью регулярных выражений. Теперь решаю две проблемы...
Sciv вне форума Ответить с цитированием
Старый 29.11.2017, 15:45   #17
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Сергей, у него там декремент N перед циклом, не нужно n-1. Я сам не сразу увидел
я же не зря весь кусок кода запостил! я dec(n) перенёс после цикла.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.11.2017, 16:21   #18
dastreba
Пользователь
 
Регистрация: 29.11.2017
Сообщений: 63
По умолчанию

Цитата:
Сообщение от Sciv Посмотреть сообщение
Код:
for i := 1 to n do
  read(A[i]);
Учтите, что при такой записи все элементы массива придётся вводить в строчку через пробел. Случайное нажатие Enter - и массив уйдёт в обработку. Ввёл значений больше/меньше, чем n - ошибка.

ReadLn - ввод каждого элемента по энтеру - решает эти проблемы.

А вот ответ на Ваш вопрос :

Код:
for i := imin to n do
   A[i] := A[i + 1];
A[n + 1] := 0;
UPDATE. Пока писал - уже ответили.

Сергей, у него там декремент N перед циклом, не нужно n-1. Я сам не сразу увидел
спасибо,за помощь.
мне лично было удобней чтоб через ENTER (readln);,но преподаватель сказал что лучше будет сделать в строку (read);
Та и плюс если пистать через read,то в конце нада написать 2 раза (readln); перед end.

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


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Записать элементы массива X, удовлетворяющие условию Х[12], подряд в массив Y =. Определить минимальный элемент массива X. полин@ Общие вопросы C/C++ 0 03.10.2016 14:37
Вычислить минимальный элемент массива(вернусь ссылку на него ), заменить этой суммой минимальный элемент mari_ly Общие вопросы C/C++ 1 30.03.2016 16:31
'ПАСКАЛЬ'Удалить столбец, в котором находится минимальный элемент. Ver kat Помощь студентам 8 28.09.2012 06:56
Минимальный элемент массива Артемкка Помощь студентам 3 19.12.2011 01:18