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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 27.09.2017, 17:27   #1
erm
Пользователь
 
Регистрация: 26.04.2013
Сообщений: 13
По умолчанию Составить программу в паскале на основе блок-схемы

Здравствуйте, только начинаю разбираться в паскале, кому не сложно, помогите преобразовать эту блок-схему в программу) Буду очень признательна)
Задание было "Составить алгоритм удаления в одномерном массиве элемента с максимальным значением"
Изображения
Тип файла: jpg IMG_7096.jpg (57.3 Кб, 350 просмотров)
erm вне форума Ответить с цитированием
Старый 27.09.2017, 17:32   #2
Alex11223
Старожил
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,500
По умолчанию

Вы не перепутали "помогите" и "сделайте за меня"?

Покажите свои наработки, конкретные вопросы и т.п.

Или в раздел Фриланс если вы не хотите ничего делать, а ищете кого-то, кто выполнит ваши задачи за вознаграждение.
Ушел с форума, https://www.programmersforum.rocks, alex.pantec@gmail.com, https://github.com/AlexP11223
ЛС отключены Аларом.
Alex11223 вне форума Ответить с цитированием
Старый 28.09.2017, 14:06   #3
erm
Пользователь
 
Регистрация: 26.04.2013
Сообщений: 13
По умолчанию

А, хорошо, извините. Я вот именно понять хочу, как это все преобразовывается. Вот смотрите,
Код:
Const n=10;
Var a:array[1..n] of integer;
K, m: integer;
Begin
Randomize;
k:=1;
m:=1;
Begin
If a(k)>a(m) then k:=k+1 else m:=k;
End;
Вот где начинается условие, я не уверена, что именно использовать if ... Then или же while ... do и как дальше потом выйти на следующее условие...

_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 28.09.2017 в 14:24.
erm вне форума Ответить с цитированием
Старый 28.09.2017, 14:23   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от erm Посмотреть сообщение
Const n=10;
покажите, где Вы увидели в вашей блок схеме задание константы N, равной 10?


Цитата:
Сообщение от erm Посмотреть сообщение
Randomize
случайные числа в блок-схеме не используются, этот оператор Вам не нужен.

зато отсутствует заполнение массива A
это можно сделать так:
Код:
  Write('Введите число элементов массива N: ');
  ReadLn(N);
  for i:=1 to N do begin
    Write('Введите ',i,'-й элемент: ');
    ReadLn(A[i]);
  end;
только учтите, что массив нужно задать (описать) или статическим (с запасом размерности заведомо больше допустимого N)
или, если допускает компилятор Pascal - использовать динамический массив (и задавать размер через выделение памяти - см. SetLength())
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.09.2017, 18:22   #5
erm
Пользователь
 
Регистрация: 26.04.2013
Сообщений: 13
По умолчанию

Нигде, просто для удобства хотела сделать, чтобы было всего 10 чисел, также думала сделать так, чтобы эти числа генерировал компьютер, а не вводил человек)
А так нельзя? Только вот не могу пока понять, как сделать так, чтобы максимальное число удалялось. Извините за глупые вопросы и ошибки, просто начинаю только...
Код:
const n=10;
Var a:array[1..n] of integer;
k, m:integer;
Begin
Randomize;
For k:=1 to n do
Begin
a[k]:=-50+random(101);
write (a[k]:5)
End;
Writeln;
K:=1;
M:=1;
For k:=1 to n do
If m<a[k] then
begin
m:=a[k];
End;
End.

Последний раз редактировалось erm; 29.09.2017 в 12:58.
erm вне форума Ответить с цитированием
Старый 29.09.2017, 10:42   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от erm Посмотреть сообщение
Нигде, просто для удобства хотела сделать, чтобы было всего 10 чисел, также думала сделать так, чтобы эти числа генерировал компьютер, а не вводил человек)
Вы же вроде бы просили код, который соответствует блок-схеме?
В блок-схеме другое написано.
Ну и там Вам виднее, нужно ли, чтобы код соответствовал алгоритму из блок-схемы или допускается изменять код (т.е. изменять алгоритм в блок-схеме).
Если можно изменять - изменяйте.
Если нужно, чтобы код делать в точности то, что написано в блок-схеме, тогда нужно писать чуть по другому (см. пост #4)

и вообще, если уж пишете код по блок-схеме, то смотрите, что написано в блок-схеме и делайте так, как написано.

вот, например,
сравните условие проверки в блок-схеме
Цитата:
Сообщение от erm Посмотреть сообщение
Код:
If m<a[k] then
и если условие выполнилось, что написано в блок-схеме, а что у Вас?!
Цитата:
Сообщение от erm Посмотреть сообщение
Код:
m:=a[k];
Вы разницу видите?
Внимательней надо! Тщательнее!
Ведь в программировании каждая запятая важна. Не говоря уже о путанице между индексом массива и элементом массива.

Вы блок-схему сами писали?


Цитата:
Сообщение от erm Посмотреть сообщение
Только вот не могу пока понять, как сделать так, чтобы максимальное число удалялось.
понятно.

пробуйте:
Код:
const
  n = 10;

var
  a: array[1..n] of integer;
  k, m: integer;

begin
  Randomize;
  for k := 1 to n do
  begin
    a[k] := -50 + random(101);
    write(a[k]:5)
  end;
  Writeln;
  
  {поиск индекса первого максимального элемента}
  m := 1;
  for k := 1 to n do
    if a[k]>a[m] then
      m := k;

  {переписать все элементы массива после максимального 
     со сдвигом к началу массива - тем самым мы удалим элемент A[M] из массива}
  for k := m to n-1 do
    a[k] := a[k+1];
 
  {вывод нового массива, с размером n-1 (массив стал на 1 элемент короче }
  for k := 1 to n-1 do
    write(a[k]:5);
  Writeln;
    
end.
Если есть вопросы по коду - смело задавайте, не стесняйтесь!

Цитата:
Сообщение от erm Посмотреть сообщение
Извините за глупые вопросы и ошибки, просто начинаю только...
А вот это ничего страшного. Учиться - это вообще похвально. А ошибки все делают.
Успехов.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 29.09.2017, 13:41   #7
erm
Пользователь
 
Регистрация: 26.04.2013
Сообщений: 13
По умолчанию

Спасибо Вам огромное, многое встало на место! Блок-схему и задание в интернете нашла) Потом просто не получалось, как в ней сделать, вот и начала отходить(
erm вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите составить блок - схемы Langel2214 Общие вопросы C/C++ 0 20.05.2014 00:51
составить блок-схемы, написать программу на Паскале Тане4ка Паскаль, Turbo Pascal, PascalABC.NET 5 03.04.2012 20:37
Составить блок-схемы kazarcev Помощь студентам 2 22.12.2010 21:24
Нужно составить 2 блок-схемы bwitcher Помощь студентам 5 23.09.2010 20:52
составить блок-схемы Vints Помощь студентам 4 06.02.2010 21:45