Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/19: Рейтинг темы: голосов - 19, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 11.10.2009
Сообщений: 13
1

Объясните, что значит каждая строка в программе

07.11.2009, 15:01. Показов 3919. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
5. В задаче из лабораторной работы №10 "Табличный вывод" обеспечить проверку при вводе следующих данных:
• название продукта – русские буквы;
• год изготовления – целое число от 2000 до 2004;
• месяц и число изготовления, срок хранения в днях – целые положительные числа);
• закупочная цена - дробное положительное число.




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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Program Lab_11;
type
Data = record
year,month,day:integer;
end;
TMilk = record
nazv:string;
srok:integer;
cena:real;
dataata;
end;
var
milk:array[1..10] of Tmilk;
i,j: integer;
procedure inp_rus(vopros: string; var p: string);
var
j: integer;
fl: boolean;
begin
repeat
writeln(vopros);
fl:=True;
readln( p);
for j:=1 to length(p) do
if not( p[j] in ['А'..'п','р'..'я']) then
fl:=false;
if not(fl) then writeln('Недопустимый ввод');
until fl;
end;
procedure inp_year(vopros: string; var p: integer);
var
s: string;
cod: integer;
begin
repeat
writeln(vopros);
readln(s);
val(s,p,cod);
if ((cod<>0)or(p<2000)or(p>2004)) then writeln('Требуется ввести целое число от 2000 до 2004!');
until ((cod=0)and(p>=2000)and(p<=2004));
end;
procedure inp_integer(vopros: string; var p: integer);
var
s: string;
cod: integer;
begin
repeat
writeln(vopros);
readln(s);
val(s,p,cod);
if ((cod<>0)or(p<0)) then writeln('Требуется ввести положительное число!');
until ((cod=0)and(p>0));
end;
procedure inp_real(vopros: string; var p:real);
var
s: string;
cod: integer;
begin
repeat
writeln(vopros);
readln(s);
val(s,p,cod);
if ((cod<>0) or (p<0.0)) then writeln('Требуется ввести положительное действительное число!');
until ((cod=0) and (p>=0.0));
end;
begin
writeln('Введите данные:');
writeln;
for i:=1 to 10 do
with milk[i] do begin
inp_rus('*Введите название продукта:',nazv);
writeln('Введите даты изготовления');
inp_year('Год:',data.year);
inp_integer('Месяц:',data.month);
inp_integer('День:',data.day);
inp_integer('Введите срок хранения:',srok);
inp_real('введите закупочную цену:',cena);
end;
writeln(' Продукты, выпущенные в июле 2004 года: |');
for i:=1 to 66 do write('-');write('|');
writeln;
write(' Название | ');
write('Год | ');
write('Месяц | ');
write('День | ');
write('Срок хранения | ');
write('Закупочная цена* | ');
writeln;
for i:=1 to 66 do write('-');write('|');
writeln;
for i:=1 to 10 do
if ((milk[i].data.year=2004)and(milk[i].data.month=7)) then
with milk[i] do begin
write(' ');
while(length(nazv)<8) do nazv:=nazv+' ';
write(nazv,' | ');
write(data.year,' | ');
write(' ',data.month,' | ');
write(' ',data.day,' | ');
write(' ',srok,' | ');
write(' ',cena:2:2,' |');
writeln;
for j:=1 to 66 do write('-');write('|');
writeln;
end;
readln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
07.11.2009, 15:01
Ответы с готовыми решениями:

Объясните пожалуйста что делает каждая строка, function prost
function prost(x: integer): boolean; begin var k: boolean := false; for var i: integer := 2...

объясните что означает каждая строка? Pascal
program bmp; uses GraphABC; type fileheader = record bfType: word; bfSize:...

Объясните, что значит первая строка
function shest(des:word):string; var digit: byte; ch: char; res:string; begin res:=''; ...

Объясните файловые процедуры в данной программе. Что значит каждое действие, связанное с файлом.
Объясните файловые процедуры в данной программе. Что значит каждое действие, связанное с файлом....

4
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
07.11.2009, 15:17 2
*tupik*, вы задавайте конкретные вопросы, а фразы типа: "мне ВСЁ не понятно" не пойдут...
0
0 / 0 / 0
Регистрация: 11.10.2009
Сообщений: 13
07.11.2009, 15:29  [ТС] 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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
Program Lab_11;
type
Data = record
year,month,day:integer;
end;
TMilk = record
nazv:string;
srok:integer;
cena:real;
data:real;
end;
var
milk:array[1..10] of Tmilk;
i,j: integer;
*procedure inp_rus(vopros: string; var p: string);
var
j: integer;
fl: boolean;
begin
repeat
writeln(vopros);
fl:=True;
readln( p);
for j:=1 to length(p) do
*if not( p[j] in ['А'..'п','р'..'я']) then
fl:=false;
if not(fl) then writeln('Недопустимый ввод');
until fl;
end;
*procedure inp_year(vopros: string; var p: integer);
var
s: string;
cod: integer;
begin
repeat
writeln(vopros);
readln(s);
val(s,p,cod);
if ((cod<>0)or(p<2000)or(p>2004)) then writeln('Требуется ввести целое число от 2000 до 2004!');
until ((cod=0)and(p>=2000)and(p<=2004));
end;
procedure inp_integer(vopros: string; var p: integer);
var
s: string;
cod: integer;
begin
repeat
writeln(vopros);
readln(s);
val(s,p,cod);
if ((cod<>0)or(p<0)) then writeln('Требуется ввести положительное число!');
until ((cod=0)and(p>0));
end;
procedure inp_real(vopros: string; var p:real);
var
s: string;
cod: integer;
begin
repeat
writeln(vopros);
readln(s);
val(s,p,cod);
if ((cod<>0) or (p<0.0)) then writeln('Требуется ввести положительное действительное число!');
until ((cod=0) and (p>=0.0));
end;
begin
writeln('Введите данные:');
writeln;
for i:=1 to 10 do
with milk[i] do begin
*inp_rus('*Введите название продукта:',nazv);
writeln('Введите даты изготовления');
inp_year('Год:',data.year);
inp_integer('Месяц:',data.month);
inp_integer('День:',data.day);
inp_integer('Введите срок хранения:',srok);
inp_real('введите закупочную цену:',cena);
end;
writeln(' Продукты, выпущенные в июле 2004 года: |');
for i:=1 to 66 do write('-');write('|');
writeln;
write(' Название | ');
write('Год | ');
write('Месяц | ');
write('День | ');
write('Срок хранения | ');
write('Закупочная цена* | ');
writeln;
for i:=1 to 66 do write('-');write('|');
writeln;
for i:=1 to 10 do
*if ((milk[i].data.year=2004)and(milk[i].data.month=7)) then
with milk[i] do begin
write(' ');
*while(length(nazv)<8) do nazv:=nazv+' ';
write(nazv,' | ');
write(data.year,' | ');
write(' ',data.month,' | ');
write(' ',data.day,' | ');
write(' ',srok,' | ');
write(' ',cena:2:2,' |');
writeln;
for j:=1 to 66 do write('-');write('|');
writeln;
end;
readln;
end.



Я поняла. Я выделила звездочкой те строчки, которые не очень ясны. Если кто-то объснит мне, буду очень признательна)
0
Retired
7727 / 2559 / 671
Регистрация: 17.10.2009
Сообщений: 5,100
07.11.2009, 16:16 4
*tupik*, на будущее: надо выделять текст тэгами так слишком трудно читать... посмотрите так же намного приятнее...
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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
type
  Data = record
    year,month,day:integer;
  end;
  TMilk = record
    nazv:string;
    srok:integer;
    cena:real;
    data:real;
  end;
var
  milk:array[1..10] of Tmilk;
  i,j: integer;
{процедура ввода названия продукта, т.е. этот участок кода будет впоследствии вызываться в программе}
procedure inp_rus(vopros: string; var p: string);
var
  j: integer;
  fl: boolean;
begin
  repeat
    writeln(vopros);
    fl:=True;
    readln( p);
    for j:=1 to length(p) do
      {проверка на принажлежность множеству}
      if not( p[j] in ['А'..'п','р'..'я']) then{я бы записал бы: p[j] in ['А'..'п','р'..'я']=false}
        fl:=false;
      if not(fl) then
        writeln('Недопустимый ввод');
  until
    fl;
end;
{процедура ввода года, она также будет впоследствии вызываться в программе}
procedure inp_year(vopros: string; var p: integer);
var
  s:string;
  cod:integer;
begin
  repeat
    writeln(vopros);
    readln(s);
    val(s,p,cod);
    if ((cod<>0)or(p<2000)or(p>2004)) then
      writeln('Требуется ввести целое число от 2000 до 2004!');
  until
    ((cod=0)and(p>=2000)and(p<=2004));
end;
{процедура ввода какого-то целого числа}
procedure inp_integer(vopros: string; var p: integer);
var
  s:string;
  cod:integer;
begin
  repeat
    writeln(vopros);
    readln(s);
    val(s,p,cod);
    if ((cod<>0)or(p<0)) then
      writeln('Требуется ввести положительное число!');
  until
    ((cod=0)and(p>0));
end;
{процедура ввода какого-то вещественного числа}
procedure inp_real(vopros: string; var p:real);
var
  s:string;
  cod:integer;
begin
  repeat
    writeln(vopros);
    readln(s);
    val(s,p,cod);
    if ((cod<>0) or (p<0.0)) then
      writeln('Требуется ввести положительное действительное число!');
    until
      ((cod=0) and (p>=0.0));
end;
{основная программа}
begin
  writeln('Введите данные:');
  writeln;
  for i:=1 to 10 do
    with milk[i] do
    begin
      {это как раз та процедура ввода наименования продукта}
      inp_rus('*Введите название продукта:',nazv);
      writeln('Введите даты изготовления');
      inp_year('Год:',data.year);
      inp_integer('Месяц:',data.month);
      inp_integer('День:',data.day);
      inp_integer('Введите срок хранения:',srok);
      inp_real('введите закупочную цену:',cena);
    end;
  writeln(' Продукты, выпущенные в июле 2004 года: |');
  for i:=1 to 66 do
    write('-');write('|');
  writeln;
  write(' Название | ');
  write('Год | ');
  write('Месяц | ');
  write('День | ');
  write('Срок хранения | ');
  write('Закупочная цена* | ');
  writeln;
  for i:=1 to 66 do
    write('-');write('|');
  writeln;
  for i:=1 to 10 do
    {условный оператор проверяет судя из названия следующее:
     если год молока = 2004 и месяц молока = 7 тогда}
    if ((milk[i].data.year=2004)and(milk[i].data.month=7)) then
      with milk[i] do
      begin
        write(' ');
        {цикл с предусловием означает следующее:
         пока длина какого-то видимо названия <8 делать...}
        while(length(nazv)<8) do
          {и выполняется следующий код}
          nazv:=nazv+' ';
        {этот уже не приналежит к прошлому циклу}
        write(nazv,' | ');
        write(data.year,' | ');
        write(' ',data.month,' | ');
        write(' ',data.day,' | ');
        write(' ',srok,' | ');
        write(' ',cena:2:2,' |');
        writeln;
        for j:=1 to 66 do
          write('-');write('|');
        writeln;
      end;
readln;
end.
1
0 / 0 / 0
Регистрация: 11.10.2009
Сообщений: 13
07.11.2009, 23:06  [ТС] 5
спасибо
0
07.11.2009, 23:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.11.2009, 23:06
Помогаю со студенческими работами здесь

Написать программу (сумму первых n целых положительных четных чисел), объясните, что значит каждая строка!
Написать программу, которая вычисляет сумму первых n целых положительных четных чисел. Количество...

Подскажите что значит каждая строка
На програмировании получил задание написать игру &quot;Захватчики&quot;,сам в С++Builder 6 совсем...

Написать, что значит каждая строка кода
1. Условие: Среднюю группу детского сада вывели на прогулку. Сколько девочек и сколько мальчиков...

Есть конфигурация роутера, надо расписать что значит каждая строка
Помогите! есть конфигурация роутера, надо расписать что значит каждая стройка, и команды которыми...


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

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