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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.05.2009, 17:27   #1
Татяна
Пользователь
 
Аватар для Татяна
 
Регистрация: 06.04.2009
Сообщений: 27
По умолчанию нужно всего лишь подправить!

программа:

program task_5;
Uses crt;
Type

school = record
sername : string[10];
class : integer;
smark : real;

end;
var
m : array [1..100] of school;
key, dkey, skey : char;
i,k,f,d,p2,v,x,n,w,R,class : integer;
p3 : real;
p1 : string;
p : text;
code : integer;

function proverka(min , max : integer ):integer;
var

class : string;

begin
min:=1;
max:=11;
i:=1;
repeat
writeln (' proverka ');
readln (class);

val (class,R, code);
if (code >0) then writeln ('введите число') else
if ((R <min) or (R >max)) then begin
writeln ('вы ввели цифры из неподходящего диапозона');
code := 1;
end;
i:=i+1;
if i>3 then begin
code:=0;
R:=min;
end;
proverka:=R;

until (code = 0)
end;
procedure d1;



begin
clrscr;
assign (p, 'D:itog.txt');
rewrite(p);
writeln(p,k);
FOR i:=1 TO k DO
begin
writeln(p, m[i].sername);
writeln(p, m[i].class);

writeln(p, m[i].smark);
end;
close(p);
end;

procedure d2;
begin
clrscr;
assign(p, 'D:itog.txt');
reset(p);
readln(p,k);
for i:=1 to k do begin
writeln(i,'.');
readln(p, m[i].sername);
writeln('SName: ',m[i].sername);
readln(p, m[i].class);
writeln('Class: ', m[i].class);
readln(p, m[i].smark);
writeln('Smark: ', m[i].smark:4:2);
writeln;
end;
close(p);
end;

procedure d3;
begin
clrscr;

i:=k+1;
k:=k+1;
write('Input sername: ');
readln(m[i].sername);
write('Input class: ');
class := proverka (0, 1000);
readln(m[i].class);

write('Input smark: ');
readln(m[i].smark);
writeln;
end;
procedure d4;

begin




for i:=1 to n do begin
if (i=x) then writeln ('Deleted');
if (i>x) then m[i-1]:=m[i];
end;
end;

procedure d5;
begin
clrscr;
write('Nomer pupil: ');
readln(d);
writeln('What do you want to change? ');
writeln('1. Change sername');
writeln('2. Change class ');
writeln('3. Change smark ');
dkey:=readkey;

FOR i:=1 TO k DO begin
if i=d then
case dkey of
'1': begin
write('Change sername: ');
readln(m[i].sername);
end;
'2': begin
write('Change class: ');
readln(m[i].class);
end;
'3': begin
write('Change smark: ');
readln(m[i].smark);
end;
end;
end;
end;

procedure d6;
begin
clrscr;
writeln('How sorting information? ');
writeln('1. sername');
writeln('2. class ');
writeln('3. smark ');
skey:=readkey;

case skey of
'1': begin
f:=0;
clrscr;
write('Enter sername: ');
readln(p1);
writeln('Class ','Smark');
FOR i:=1 TO k DO
begin
if m[i].sername=p1 then
begin
GOTOXY(1,3+f);
write(m[i].class);
GOTOXY(7,3+f);
write(m[i].smark:4:2);
inc(f);
writeln;
end
end;
end;
'2': begin
f:=0;
clrscr;
write('Enter class: ');
readln(p2);
writeln('Sername ','Smark');
FOR i:=1 TO k DO
begin
if m[i].class=p2 then
begin
GOTOXY(1,3+f);
write(m[i].sername);
GOTOXY(12,3+f);
write(m[i].smark:4:2);
inc(f);
writeln;
end
end;
end;
'3': begin
f:=0;
clrscr;
write('Enter smark: ');
readln(p3);
writeln('Sername ','Class ');
FOR i:=1 TO k DO
begin
if m[i].smark=p3 then
begin
GOTOXY(1,3+f);
write(m[i].sername);
GOTOXY(12,3+f);
write(m[i].class);
inc(f);
writeln;
end
end;
end;
end;



end;
procedure d7;
begin
clrscr;
write('Nomber of pupil: ');
readln(v);
FOR i:=1 TO k DO
begin
if i=v then
begin
writeln('SName: ',m[i].sername);
writeln('Class: ', m[i].class);
writeln('Smark: ', m[i].smark:4:2);
writeln;
end;
end;
end;

BEGIN
clrscr;
f:=0;
write('Input number of puple: ');
readln(k);
FOR i:=1 TO k DO
begin
write('Input sername: ');
readln(m[i].sername);
write('Input class: ');
readln(m[i].class);
write('Input smark: ');
readln(m[i].smark);
writeln;
end;
repeat
writeln('What do you want to do?');
writeln('1. Write in fail ');
writeln('2. Read from fail ');
writeln('3. Add information ');
writeln('4. Delete information ');
writeln('5. Change information ');
writeln('6. Sorting information ');
writeln('7. Search record ');
writeln('8. Exit ');
key:=readkey;
case key of
'1' : d1;
'2' : d2;
'3' : d3;
'4' : d4;
'5' : d5;
'6' : d6;
'7' : d7;
end;
until key='8';
END.
Татьяна
Татяна вне форума Ответить с цитированием
Старый 19.05.2009, 17:28   #2
Татяна
Пользователь
 
Аватар для Татяна
 
Регистрация: 06.04.2009
Сообщений: 27
По умолчанию

помогите подправить функцию проверка, так чтобы она выполнялась все таки, и осуществить проверку на smark
Татьяна
Татяна вне форума Ответить с цитированием
Старый 20.05.2009, 00:40   #3
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Я, конечно, понимаю, что для вас ваша программа понятна и очевидна.. Но, может быть, вы все-таки вкратце расскажите, где тут что и зачем?
Что за проверка, что за класс, смарк...и прочее..

Пока вот что бросилось в глаза:
в процедуре d3, насколько я понял, должно быть так:
Код:
m[i].aclass := proverka (0, 1000);
Но из-за недостатка информации не могу быть в этом уверен.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 20.05.2009, 14:36   #4
Татяна
Пользователь
 
Аватар для Татяна
 
Регистрация: 06.04.2009
Сообщений: 27
По умолчанию

Программа однотабличной базы данных.Информация хранится в амассиве записей.Запись должна сожеражть минимум три поля различных типов.Хранение осущ в типизированном файле!Ми требования:
1.запись /счтавания базы данных в/из файла
2.простомтрт содержимого базы дааных
Добавление записи данных
Уничтодение выбрано записи данных
сортировка по выбранному полю
Посик записейй в базе!
Татьяна
Татяна вне форума Ответить с цитированием
Старый 20.05.2009, 14:36   #5
Татяна
Пользователь
 
Аватар для Татяна
 
Регистрация: 06.04.2009
Сообщений: 27
По умолчанию

но все равно проверка не дейсвтует(
Татьяна
Татяна вне форума Ответить с цитированием
Старый 20.05.2009, 14:39   #6
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
но все равно проверка не дейсвтует(
Так в чем заключается проверка? Что она должна проверять?
Если проверяется, является ли введенное значение числом, то все работает.

Вот так измените функцию:
Код:
function proverka(min , max : integer ):integer;
var
aclass : string;
R,i : integer;
begin
min:=1;
max:=11;
i:=1;
repeat
 writeln (' proverka ');
 readln (aclass);

val (aclass,R, code);
if (code >0) then writeln ('¢¢¥¤¨â¥ ç¨á«®')
else if ((R <min) or (R >max)) then
  begin
  writeln ('¢ë ¢¢¥«¨ æ¨äàë ¨§ *¥¯®¤å®¤ï饣® ¤¨*¯®§®**');
  code := 1;
  end
else
 begin
 proverka :=R;
 exit;
 end;
i:=i+1;
if i>3 then
 begin
 code:=0;
 R:=min;
 end;
proverka:=R;

until (code = 0)

end;
Вы везде используете глобальные переменные. Потому у вас и не работает.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 20.05.2009 в 14:56.
Sazary вне форума Ответить с цитированием
Старый 20.05.2009, 21:17   #7
Татяна
Пользователь
 
Аватар для Татяна
 
Регистрация: 06.04.2009
Сообщений: 27
По умолчанию

ога)Спаибо, все уже получилось)
Татьяна
Татяна вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подправить задачу на Паскал sinid Помощь студентам 13 04.03.2009 21:40
Помогите подправить формулу! Maxx Microsoft Office Excel 5 16.12.2008 13:43
Функция ВПР возвращает лишь 1 ближайшее к заданному значение...... Death Dealer Microsoft Office Excel 4 24.11.2008 11:26
SOS, исчезли формулы,остались лишь значения (числа) lyolya Microsoft Office Excel 2 30.07.2008 14:41
Обработка события Updated не всего листа, а лишь одной ячейки neugadal Microsoft Office Excel 7 20.07.2008 18:18