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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2009, 14:57   #1
*natali*
 
Регистрация: 11.10.2009
Сообщений: 4
Вопрос Объясните, что значит каждая строка в программе

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




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.

Последний раз редактировалось *natali*; 07.11.2009 в 15:16.
*natali* вне форума Ответить с цитированием
Старый 07.11.2009, 14:59   #2
InstanT'
 
Регистрация: 07.11.2009
Сообщений: 9
По умолчанию

Насколько я понял,это Паскаль?) а то в теме нигде не указано..)
InstanT' вне форума Ответить с цитированием
Старый 07.11.2009, 15:02   #3
*natali*
 
Регистрация: 11.10.2009
Сообщений: 4
По умолчанию

Да, это паскаль(
*natali* вне форума Ответить с цитированием
Старый 07.11.2009, 15:04   #4
ОДИНОЧЕСТВО В СЕТИ
Любопытная Вредина
Участник клуба
 
Аватар для ОДИНОЧЕСТВО В СЕТИ
 
Регистрация: 19.06.2009
Сообщений: 1,285
По умолчанию

Код:
Program Lab_11;
type
Data = record            
year,month,day:integer; 
end;
TMilk = record        
nazv:string;        
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;      
*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>2009)) then writeln('Требуется ввести целое число от 2000 до 2009!');// это что за молоко которое 5 лет храниться
until ((cod=0)and(p>=2000)and(p<=2009));
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(' Продукты, выпущенные в июле 2009 года: |');
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+' '; // увеличиваем длину строки nazv до 8 видимо для красоты вывода
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.
не по теме
а у вас исходников Windows7 нету а то б мы тоже прокомментировали
Дурь - это особая форма материи, которая не возникает ниоткуда и не исчезает никуда, а лишь переходит из одной головы в другую.

Последний раз редактировалось ОДИНОЧЕСТВО В СЕТИ; 07.11.2009 в 17:37.
ОДИНОЧЕСТВО В СЕТИ вне форума Ответить с цитированием
Старый 07.11.2009, 15:08   #5
InstanT'
 
Регистрация: 07.11.2009
Сообщений: 9
По умолчанию

Увы..девушка, Прокомментировать каждую строку,слишком уж затруднительно..а вообще советую скачать любой учебник по паскалю, и почитать информацию о функциях используемых в данной программе,пользы будет куда больше
InstanT' вне форума Ответить с цитированием
Старый 07.11.2009, 15:17   #6
*natali*
 
Регистрация: 11.10.2009
Сообщений: 4
По умолчанию

Меня интересуют лишь строки, кото. я выделила *...
Если кто-то имеет возможность просветить тупика в этой сфере, буду очень признательна(
*natali* вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Что значит warning: no newline at end of file ?? jojahti Общие вопросы C/C++ 3 16.10.2009 08:50
что значит эта ошибка на борланд с++ Nani Помощь студентам 1 13.06.2009 23:36
Что значит ошибка и как исправить? Pirotexnik Общие вопросы Delphi 2 26.03.2009 19:52
Напишите пожалуйста за что отвечает каждая строчка Saaashka Помощь студентам 1 02.07.2008 08:34
объясните что значит 3й параметр в выражении MadBeef Помощь студентам 1 21.05.2008 16:21