Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 28.11.2015, 20:33
ginkok ginkok вне форума
Прохожий
 
Регистрация: 28.11.2015
Сообщения: 1
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Операции с записями. Программа не так работает

Задание:Разработать базу данных "Магазин по продаже персональных компьютеров"(Процессор,ПЗУ,ОЗУ,винчествер и т.п, стоимость).Вывести на экран данные о компьютере стоимость которых менее 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  
Старый 28.11.2015, 22:52
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,020
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Потому что 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.

ЗЫ. И еще руки оторвать за такое форматирование кода.
Ответить с цитированием
Ответ


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 17:53.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter