|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Операции с записями. Программа не так работает
Задание:Разработать базу данных "Магазин по продаже персональных компьютеров"(Процессор,ПЗУ,ОЗУ,винчествер и т.п, стоимость).Вывести на экран данные о компьютере стоимость которых менее 6 тысяч рублей.
Программа: Код:
Program one; {APPTYPE CONSOLE} uses SysUtils; type computer=record proc,ozy,pzy,vich:string[15]; end; var a:array[1..20] of computer; n,i,cena:integer; begin write('kol-vo computerov: ');readln(n); for i:=1 to n do with a[i] do begin write ('proc: '); readln(proc); write ('ozy: '); readln(0zy); write ('pzy: '); readln(pzy); write ('vinch: '); readln(vinch); write ('cena(ozy,pzy,proc,vinch): '); readln(cena); end; for i:=1 to n do begin with a[i] do if cena<6000 then writeln(proc,' ',ozy,' ',pzy,' ',vinch,' '); end; readln; end. Суть ошибки в том,что если я задаю 3 компьютера допустим:первый стоит 5000,второй 8000,третий 10000,то в результате он выводит мне все,вместо только первого.Пожалуйста помогите подкорректировать программу. |
#2
|
|||
|
|||
Потому что cena тоже должна быть членом записи.
Код:
Program one; {APPTYPE CONSOLE} uses SysUtils; type computer=record proc,ozy,pzy,vich:string[15]; cena : integer; end; var a:array[1..20] of computer; n,i:integer; begin write('kol-vo computerov: ');readln(n); for i:=1 to n do with a[i] do begin write ('proc: '); readln(proc); write ('ozy: '); readln(ozy); write ('pzy: '); readln(pzy); write ('vinch: '); readln(vinch); write ('cena(ozy,pzy,proc,vinch): '); readln(cena); end; for i:=1 to n do begin with a[i] do if cena<6000 then writeln(proc,' ',ozy,' ',pzy,' ',vinch,' '); end; readln; end. ЗЫ. И еще руки оторвать за такое форматирование кода. |