Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
1

Оформить код в виде подпрограмм

07.12.2013, 20:39. Показов 1391. Ответов 13
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здраствуйте форумчане! помогите оформить в виде подпрограмм?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
  uses crt;
const
  n=2;
type
  Price=record
    tovar: string[20];
    mag: string[12];
    stoim: string[10];
  end;
var
  spisok: array [1..n] of Price;
  t: Price;
  i,j: integer;
Begin
  textbackground (1);
  textcolor (10);
  clrscr;
  for i:=1 to n do with t do begin
    WriteLn('Введите информацию о товаре №',i);
    Write(' Название: '); ReadLn(tovar);
    Write('  Магазин: '); ReadLn(mag);
    Write('Стоимость: '); ReadLn(stoim);
    WriteLn;
    j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do begin
      spisok[j]:=spisok[j-1]; dec(j);
    end;
    spisok[j]:=t;
  end;
  for i:=1 to n do WriteLn('Товар №',i,': ',spisok[i].tovar);
  repeat
    Write('Введите номер товара (0-выход): '); ReadLn(i);
    if (i>=1) and (i<=n) then with spisok[i] do begin
      WriteLn('    Товар: ',tovar);
      WriteLn('  Магазин: ',mag);
      WriteLn('Стоимость: ',stoim);
    end;
  until i=0;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.12.2013, 20:39
Ответы с готовыми решениями:

Оформить в виде подпрограмм в модуле
Написать функцию или процедуру, которая: а) удаляет из непустого списка P второй элемент; б)...

Логически законченные фрагменты оформить в виде подпрограмм, которым все необходимые данные передать через список параме
Логически законченные фрагменты оформить в виде подпрограмм, которым все необходимые данные...

Вычисления суммы ряда оформить в виде функций, используемые функции и процедуры оформить в виде модуля
Напишите программу полностью, очень прошу! Вычисления оформить в виде функции, используемые функции...

Оформить программу в виде подпрограмм
Программа вставляет введенные элементы после максимального элемента и перед ним #include...

13
Супер-модератор
6192 / 2938 / 1300
Регистрация: 04.03.2013
Сообщений: 5,780
Записей в блоге: 1
07.12.2013, 20:42 2
Да все что угодно, ну сделайте ввод в виде подпрограммы
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
07.12.2013, 20:56  [ТС] 3
Цитата Сообщение от ildwine Посмотреть сообщение
Да все что угодно, ну сделайте ввод в виде подпрограммы
я прав?, дальше не знаю еще что можно вставить в подпрограмму..
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  uses crt;
const
  n=2;
type
  Price=record
    tovar: string[20];
    mag: string[12];
    stoim: string[10];
  end;
var
  spisok: array [1..n] of Price;
  t: Price;
  i,j: integer;
procedure price (var A: array[1..n] of integer; const N, k: integer);
  var  B: array[1..10] of integer; i: integer;
    begin
  for i:=1 to n do with t do;
 j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do;
for i:=1 to n do;
end;
 
  
Begin
  textbackground (1);
  textcolor (10);
  clrscr;
  for i:=1 to n do with t do begin
    WriteLn('Введите информацию о товаре №',i);
    Write(' Название: '); ReadLn(tovar);
    Write('  Магазин: '); ReadLn(mag);
    Write('Стоимость: '); ReadLn(stoim);
    WriteLn;
    j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do begin
      spisok[j]:=spisok[j-1]; dec(j);
    end;
    spisok[j]:=t;
  end;
  for i:=1 to n do WriteLn('Товар №',i,': ',spisok[i].tovar);
  repeat
    Write('Введите номер товара (0-выход): '); ReadLn(i);
    if (i>=1) and (i<=n) then with spisok[i] do begin
      WriteLn('    Товар: ',tovar);
      WriteLn('  Магазин: ',mag);
      WriteLn('Стоимость: ',stoim);
    end;
  until i=0;
end.
0
Супер-модератор
6192 / 2938 / 1300
Регистрация: 04.03.2013
Сообщений: 5,780
Записей в блоге: 1
07.12.2013, 20:59 4
Добавьте в подпрограмму ввод сведений о товаре... 28-33 строки...
(Можно в подпрограмму вставить всё! Скажем ввод, вывод, ввод данных, вывод результата... все подпрограммы)
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
07.12.2013, 21:16  [ТС] 5
Цитата Сообщение от ildwine Посмотреть сообщение
Добавьте в подпрограмму ввод сведений о товаре... 28-33 строки...
(Можно в подпрограмму вставить всё! Скажем ввод, вывод, ввод данных, вывод результата... все подпрограммы)
как то так... верно ли?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
  uses crt;
const
  n=2;
type
  Price=record
    tovar: string[20];
    mag: string[12];
    stoim: string[10];
  end;
var
  spisok: array [1..n] of Price;
  t: Price;
  i,j: integer;
procedure price (var A: array[1..n] of integer; const N, k: integer);
  var  B: array[1..10] of integer; i: integer;
    begin
  for i:=1 to n do with t do;
 j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do;
for i:=1 to n do;
WriteLn('Введите информацию о товаре №',i);
    Write(' Название: '); ReadLn(tovar);
    Write('  Магазин: '); ReadLn(mag);
    Write('Стоимость: '); ReadLn(stoim);
    WriteLn;
end;
 
  
Begin
  textbackground (1);
  textcolor (10);
  clrscr;
  for i:=1 to n do with t do begin
    j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do begin
      spisok[j]:=spisok[j-1]; dec(j);
    end;
    spisok[j]:=t;
  end;
  for i:=1 to n do WriteLn('Товар №',i,': ',spisok[i].tovar);
  repeat
    Write('Введите номер товара (0-выход): '); ReadLn(i);
    if (i>=1) and (i<=n) then with spisok[i] do begin
      WriteLn('    Товар: ',tovar);
      WriteLn('  Магазин: ',mag);
      WriteLn('Стоимость: ',stoim);
    end;
  until i=0;
end.
0
Супер-модератор
6192 / 2938 / 1300
Регистрация: 04.03.2013
Сообщений: 5,780
Записей в блоге: 1
07.12.2013, 21:31 6
Pascal
1
procedure price (var A: array[1..n] of integer; const N, k: integer);
Pascal
1
var A: array[1..n] of integer
так нельзя передавать параметры в процедуру. Нужно описать тип в разделе
Pascal
1
type asdasd = array [1..n] of integer;
Добавлено через 1 минуту
и написать потом
Pascal
1
procedure price (var A: asdasd; const N, k: integer);
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
07.12.2013, 21:49  [ТС] 7
вроде так...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const
  n=2;
type
  Price=record
    tovar: string[20];
    mag: string[12];
    stoim: string[10];
  end;
var
  spisok: array [1..n] of Price;
  t: Price;
  i,j: integer;
procedure Move (var A: Price; const N, i,j: integer);
  var  B: array[1..10] of integer; i: integer;
    begin
  for i:=1 to n do with t do;
 j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do;
for i:=1 to n do;
WriteLn('Введите информацию о товаре №',i);
    Write(' Название: '); ReadLn(tovar);
    Write('  Магазин: '); ReadLn(mag);
    Write('Стоимость: '); ReadLn(stoim);
    WriteLn;
end;
 
  
Begin
  textbackground (1);
  textcolor (10);
  clrscr;
  for i:=1 to n do with t do begin
    j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do begin
      spisok[j]:=spisok[j-1]; dec(j);
    end;
    spisok[j]:=t;
  end;
  for i:=1 to n do WriteLn('Товар №',i,': ',spisok[i].tovar);
  repeat
    Write('Введите номер товара (0-выход): '); ReadLn(i);
    if (i>=1) and (i<=n) then with spisok[i] do begin
      WriteLn('    Товар: ',tovar);
      WriteLn('  Магазин: ',mag);
      WriteLn('Стоимость: ',stoim);
    end;
  until i=0;
end.
0
Супер-модератор
6192 / 2938 / 1300
Регистрация: 04.03.2013
Сообщений: 5,780
Записей в блоге: 1
07.12.2013, 22:10 8
14 строка - ошибка. опять i объявлен, хотя он есть уже как параметр в процедуре...

Добавлено через 1 минуту
Вы вообще хоть проверяете в компиляторе, или эту задачу решили возложить на форумчан?
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
07.12.2013, 22:27  [ТС] 9
Цитата Сообщение от ildwine Посмотреть сообщение
14 строка - ошибка. опять i объявлен, хотя он есть уже как параметр в процедуре...

Добавлено через 1 минуту
Вы вообще хоть проверяете в компиляторе, или эту задачу решили возложить на форумчан?
да проверяю, при компилировании вылазиет ошибка "недьзя присвоить левой части", это может быть в цикле нужно написать только сам цикл?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const
  n=2;
type
  Price=record
    tovar: string[20];
    mag: string[12];
    stoim: string[10];
  end;
var
  spisok: array [1..n] of Price;
  t: Price;
  i,j: integer;
procedure Move (var A: Price; const N, i,j: integer);
  var  B: array[1..10] of integer;
    begin
  for i:=1 to n do with t do;
 j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do;
for i:=1 to n do;
WriteLn('Введите информацию о товаре №',i);
    Write(' Название: '); ReadLn(tovar);
    Write('  Магазин: '); ReadLn(mag);
    Write('Стоимость: '); ReadLn(stoim);
    WriteLn;
end;
 
 
Begin
  textbackground (1);
  textcolor (10);
  clrscr;
  for i:=1 to n do with t do begin
    j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do begin
      spisok[j]:=spisok[j-1]; dec(j);
    end;
    spisok[j]:=t;
  end;
  for i:=1 to n do WriteLn('Товар №',i,': ',spisok[i].tovar);
  repeat
    Write('Введите номер товара (0-выход): '); ReadLn(i);
    if (i>=1) and (i<=n) then with spisok[i] do begin
      WriteLn('    Товар: ',tovar);
      WriteLn('  Магазин: ',mag);
      WriteLn('Стоимость: ',stoim);
    end;
  until i=0;
end.
Добавлено через 3 минуты
кстати, само задание вот, программа работает верно, но я не знаю какие процедуры или функции вставить...
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
При разработке программы применить технологию нисходящего проектирования.
Логически законченные фрагменты оформить в виде подпрограмм, все необходимые данные которым передаются через список параметров.
Использования глобальных переменных следует избегать.
2) Описать запись с именем PRICE, содержащую следующие поля:
• TOVAR — название товара;
• MAG — название магазина, в котором продается товар;
• STOIM — стоимость товара в руб.
3) Написать программу, выполняющую следующие действия:
• ввод с клавиатуры данных в массив SPISOK, состоящий из восьми элементов типа PRICE;
записи должны быть размещены в алфавитном порядке по названиям товаров;
• вывод на экран информации о товаре, название которого введено с клавиатуры;
• если таких товаров нет, выдать на дисплей соответствующее сообщение.}
  uses crt;
const
  n=2;
type
  Price=record
    tovar: string[20];
    mag: string[12];
    stoim: string[10];
  end;
var
  spisok: array [1..n] of Price;
  t: Price;
  i,j: integer;
Begin
  textbackground (1);
  textcolor (10);
  clrscr;
  for i:=1 to n do with t do begin
    WriteLn('Введите информацию о товаре №',i);
    Write(' Название: '); ReadLn(tovar);
    Write('  Магазин: '); ReadLn(mag);
    Write('Стоимость: '); ReadLn(stoim);
    WriteLn;
    j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do begin
      spisok[j]:=spisok[j-1]; dec(j);
    end;
    spisok[j]:=t;
  end;
  for i:=1 to n do WriteLn('Товар №',i,': ',spisok[i].tovar);
  repeat
    Write('Введите номер товара (0-выход): '); ReadLn(i);
    if (i>=1) and (i<=n) then with spisok[i] do begin
      WriteLn('    Товар: ',tovar);
      WriteLn('  Магазин: ',mag);
      WriteLn('Стоимость: ',stoim);
    end;
  until i=0;
end.
0
Супер-модератор
6192 / 2938 / 1300
Регистрация: 04.03.2013
Сообщений: 5,780
Записей в блоге: 1
07.12.2013, 22:28 10
Pascal
1
procedure Move (var A: Price; const N, i,j: integer);
тут измените i на зю, ибо переменная объявлена внутри подпрограммы.
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
07.12.2013, 22:32  [ТС] 11
Цитата Сообщение от ildwine Посмотреть сообщение
Pascal
1
procedure Move (var A: Price; const N, i,j: integer);
тут измените i на зю, ибо переменная объявлена внутри подпрограммы.
теперь пишет что нужно скобка в процедуре, если ставить, то будет n-ое число скобок....
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
const
  n=2;
type
  Price=record
    tovar: string[20];
    mag: string[12];
    stoim: string[10];
  end;
var
  spisok: array [1..n] of Price;
  t: Price;
  i,j: integer;
procedure Move (var A: Price; const N);
  var  B: array[1..10] of integer;
    begin
  for i:=1 to n do with t do;
 j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do;
for i:=1 to n do;
WriteLn('Введите информацию о товаре №',i);
    Write(' Название: '); ReadLn(tovar);
    Write('  Магазин: '); ReadLn(mag);
    Write('Стоимость: '); ReadLn(stoim);
    WriteLn;
end;
 
 
Begin
  textbackground (1);
  textcolor (10);
  clrscr;
  for i:=1 to n do with t do begin
    j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do begin
      spisok[j]:=spisok[j-1]; dec(j);
    end;
    spisok[j]:=t;
  end;
  for i:=1 to n do WriteLn('Товар №',i,': ',spisok[i].tovar);
  repeat
    Write('Введите номер товара (0-выход): '); ReadLn(i);
    if (i>=1) and (i<=n) then with spisok[i] do begin
      WriteLn('    Товар: ',tovar);
      WriteLn('  Магазин: ',mag);
      WriteLn('Стоимость: ',stoim);
    end;
  until i=0;
end.
0
Супер-модератор
6192 / 2938 / 1300
Регистрация: 04.03.2013
Сообщений: 5,780
Записей в блоге: 1
07.12.2013, 23:06 12
Вы не поняли, i и j нужно оставить в скобках... но назвать по-другому... И уж тем более не удалять : integer...
0
2 / 2 / 4
Регистрация: 10.11.2013
Сообщений: 140
08.12.2013, 16:45  [ТС] 13
Цитата Сообщение от ildwine Посмотреть сообщение
Вы не поняли, i и j нужно оставить в скобках... но назвать по-другому... И уж тем более не удалять : integer...
блин программа комплирует, но при работе просить сразу ввести номер товара...( походу не правильно сделал
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
const
  n=2;
type
  Price=record
    tovar: string[20];
    mag: string[12];
    stoim: string[10];
  end;
var
  spisok: array [1..n] of Price;
  t: Price;
  i,j: integer;
procedure Move (var A: Price; const N, c, g:integer;tovar,mag,stoim:string);
  var  B: array[1..10] of integer;
    begin
  for i:=1 to n do with t do
 j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do
for i:=1 to n do
WriteLn('Введите информацию о товаре №',i);
    Write(' Название: '); ReadLn(tovar);
    Write('  Магазин: '); ReadLn(mag);
    Write('Стоимость: '); ReadLn(stoim);
    WriteLn;
end;
 Begin
  for i:=1 to n do with t do begin
    j:=i; while (j>1) and (tovar<spisok[j-1].tovar) do begin
      spisok[j]:=spisok[j-1]; dec(j);
    end;
    spisok[j]:=t;
  end;
  for i:=1 to n do WriteLn('Товар №',i,': ',spisok[i].tovar);
  repeat
    Write('Введите номер товара (0-выход): '); ReadLn(i);
    if (i>=1) and (i<=n) then with spisok[i] do begin
      WriteLn('    Товар: ',tovar);
      WriteLn('  Магазин: ',mag);
      WriteLn('Стоимость: ',stoim);
    end;
  until i=0;
end.
0
7 / 7 / 1
Регистрация: 07.01.2016
Сообщений: 129
26.01.2016, 19:27 14
Используй clrscr вот пример:
Pascal
1
2
3
4
5
6
7
uses crt;
begin
write('жди');
sleep(5000);
clrscr;
write('"жди" пропало');
end.

Я выже уже сказал, так будет проще, или ты имеешь ввиду сохранения? погугли я наткнулся на одну статью мне она помогла.
0
26.01.2016, 19:27
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.01.2016, 19:27
Помогаю со студенческими работами здесь

Оформить в виде подпрограмм-функций в программах
Prog type complex = record x: real; y: real; end; var ...

Оформить в виде подпрограмм-функций в программах
Составьте программу нахождения суммы комплексных чисел. Комплексные числа хранятся в массиве....

Оформить код в виде функции
не могу понять как оформить данный код в виде функции. import turtle scene = turtle.Screen()...

Оформить код в виде цикла
можно ли с помощью цикла оформить: if ((combobox2.ItemIndex = 0) and (ansipos('file 1:' + ' ' +...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru