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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.12.2008, 20:34   #1
zonclayv
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 13
По умолчанию Ошибка в тексте программы с пользовательским модулем

Решил забачу, но она некоректно выполняет 1 и 2 условия(см.условие). КТО В СИЛАХ ПОДКИНЬТЕ ИДЕЮ. СПАСИБО.
Условие: Для данных, которые отражены в таблице, разработать программу, которая обеспечивает:
• добавление новых строк в таблицу;
• удаление строки с заданным номером из таблицы;
• вывод на экран информации, которая сохраняется в строке с заданным номером;
• вывод на экран всей таблицы.
Программа должна состоять, как минимум, из двух файлов: в первом файле должна находится главная программа, функция которой – выбор в диалоговом режиме одного из вышеприведенных действий, второй файле – модуль, который содержит функции, которые реализуют действия над строками.
Собственно текст программы:
program L13Z1;
uses zapis;
var n,i,z,h,j,c:integer;
Begin
h:=3;
Write('Vvedit chislo:1-Dobavlenie stroki, 2-Udalenie stroki, 3-Vivod stroki, 4-Vivod tablici, 5-Vihod->');Read(n);
a[1].naimenovanie:='Flanec';
a[1].tip:='Z';
a[1].kolichestvo:=3;
a[1].ves:=450;
a[2].naimenovanie:='Perehodnik';
a[2].tip:='P';
a[2].kolichestvo:=8;
a[2].ves:=74;
a[3].naimenovanie:='Stanica';
a[3].tip:='O';
a[3].kolichestvo:=1;
a[3].ves:=117050;
if (n<0) or (n>5) then
write('Neverno vvedeno chislo, vvedite ego zanovo libo vikinte komputer)))))))')
else
begin
if n=4 then
vivodT(i);
if n=3 then
begin

vivodS(c);
end;
if n=1 then begin
novayaS(i);
h:=h+1; end;
if n=2 then
begin
del(i,h);
end
else
begin
write(a[i].Naimenovanie:10);
write(' ',a[i].tip:4);
write(' ',a[i].kolichestvo:11);
write(' ',a[i].Ves:15);
writeln;
end;
if n=5 then
halt;
end;
readln; readln;
end.
И модуль к ней:
unit zapis;
interface
type
Vedomost=record
Naimenovanie:string;
tip:string;
kolichestvo:integer;
Ves:longint;
end;
var
Detali:Vedomost;
a:array[1..100] of Vedomost;
i,n,h,c,m,z,k,e:integer;
procedure del(h,i:integer);
procedure novayaS(i:integer);
procedure vivodS(c:integer);
procedure vivodT(i:integer);
implementation
*******Первая ошибка*****
procedure del;
var z:integer;
begin
write('Vvedite nomer stroki, kotoruju x0tite udalit-->'); readln (z);
Writeln('Naimenovanie|tip|kolichest vo|Ves 1 detali(g)');
for i:=z to h-1 do
begin
a[i].naimenovanie:=a[i+1].naimenovanie;
a[i].tip:=a[i+1].tip;
a[i].kolichestvo:=a[i+1].kolichestvo;
a[i].ves:=a[i+1].ves;
end;
for i:=1 to h-1 do begin
write(a[i].Naimenovanie:10);
write(' ',a[i].tip:4);
write(' ',a[i].kolichestvo:11);
write(' ',a[i].Ves:15);
end;

end;
**********
*******Вторая ошибка******

procedure novayaS; begin
writeln(' Vvedite dannye novoj stroki:');
Write('Vvedite Naimenovanie detali->');read(a[i].naimenovanie);
Write('Vvedite tip detali->');read(a[i].tip);
Write('Vvedite kolichestvo detaley->');read(a[i].kolichestvo);
Write('Vvedite ves 1 detali v grammah->');read(a[i].ves);
Writeln('Naimenovanie|tip|kolichest vo|Ves 1 detali(g)');
for i:=1 to 4 do
begin
if i=4 then begin
write(a[4].Naimenovanie:10);
write(' ',a[4].tip:4);
write(' ',a[4].kolichestvo:11);
write(' ',a[4].Ves:15);
writeln; end
else begin
write(a[i].Naimenovanie:10);
write(' ',a[i].tip:4);
write(' ',a[i].kolichestvo:11);
write(' ',a[i].Ves:15);
writeln; end;
end;
readln; end;
***********
procedure vivodS;
var i:integer;
begin
write('Vvedite N stroki dlja vyvoda-->');readln(c);
i:=c;
Writeln('Naimenovanie|tip|kolichest vo|Ves 1 detali(g)');
write(a[i].Naimenovanie:10);
write(' ',a[i].tip:4);
write(' ',a[i].kolichestvo:11);
write(' ',a[i].Ves:15);
writeln; readln; end;
procedure vivodT;
begin
Writeln('Naimenovanie|tip|kolichest vo|Ves 1 detali(g)');
for i:=1 to 3 do
begin
write(a[i].Naimenovanie:10);
write(' ',a[i].tip:4);
write(' ',a[i].kolichestvo:11);
write(' ',a[i].Ves:15);
writeln;
end; readln;
end;
end.

Последний раз редактировалось zonclayv; 22.12.2008 в 20:42.
zonclayv вне форума Ответить с цитированием
Старый 22.12.2008, 21:39   #2
zonclayv
Пользователь
 
Регистрация: 22.12.2008
Сообщений: 13
По умолчанию

Печально...что никто не может помочь((((
zonclayv вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка в коды программы Claster Помощь студентам 4 12.11.2008 17:44
[C++] ошибка в коде программы!! jazzben Помощь студентам 12 27.09.2008 19:25
Ошибка при запуске программы MAcK Общие вопросы .NET 5 14.08.2008 15:12
Ошибка и падение (выход) Excel при выполнении сложной программы на VBA Serge_Bliznykov Microsoft Office Excel 6 13.08.2008 16:50
Ошибка при инсталляции программы фЁдОр Помощь студентам 5 24.12.2007 11:27