Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Расчётная работа. Помогите

Автор: abv 11.11.2004 22:12

Создать массив записей, содержащих сведения об игрушках в торговой базе.
- Название игрушки(кукла, конструктор, робот и т.п.)
-ее стоимость
- Возрастные граници ребёнка, для которого предназначена игрушка.
Предусмотреть выдачу сведений:
а) О цене самой дорогой игрушки;
б) Об игрушках цена которых не привышает заданную величину;
в) Название игрушек которые подходят детям от 4 до10 лет.

Вот такое непростое задание. Помогите плиз.

Автор: volvo 11.11.2004 22:47

Значит, алгоритм такой:

1. Определяем массив записей для хранения данных:

Код

const
 n = 20; {количество игрушек}
type
 TItem = record
   title: string[30];  { название }
   price: real;  { цена }
   ages: byte;  { возраст }
 end;

var
 info: array[1 .. n] of TItem;


Затем проходим по этому массиву и смотрим, для каких записей выполняются приведенные выше условия... если условие выполняется - печатаем.

Если не срочно, завтра могу набросать исходник... ;)

Автор: GoodWind 11.11.2004 23:16

abv, курсовик ?

Автор: Jahnerus 12.11.2004 2:27

Ну вобщем в продолжение темы...

Код

uses crt;
type
 item = record
   title: string[30];{название}
   price: real;{цена}
   age_1,age_2: byte;{возраст}
 end;
var
 i,n:byte;
 maxp:real;
 info: array[1 .. 255] of item;
begin
clrscr;
{Ввод данных производится с клавы}
write('Введите количество товаров ');
readln(n);
for i:=1 to n do begin
 with info[i] do begin
   writeln('Введите данные для ',i,'-ой/ей игрушки :');
   write('Hазвание: ');
   readln(title);
   write('Цена: ');
   readln(price);
   if price>maxp then maxp:=price;
   write('Возростные границы (через пробел): ');
   readln(age_1,age_2);
 end;
end;
clrscr;
writeln('Цена самой дорогой игрушки ',maxp:4:2);
write('Введите величину ограничивающую стоимость ');
readln(maxp);
for i:=1 to n do begin
 with info[i] do begin
   if price<maxp then begin
     writeln('Hазвание: ',title);
     writeln('Цена: ',price:4:2);
     writeln('Возростные границы: от ',age_1,' до ',age_2);
     writeln('Hажмите клавишу для вывода информации о следующей игрушке ');
     readkey;
   end;
 end;
end;
writeln('Игрушек с ценой меньшей указанной вами больше нет');
writeln('Следующие игрушки подходят детям в возрасте от 4 до 10 лет');
for i:=1 to n do begin
 with info[i] do begin
   if (age_1>3) and (age_2<11) then writeln(title);
 end;
end;
readln;
end.

Надеюсь что првильно понял задание :p2:

Автор: Guest 13.11.2004 0:00

Цитата(GoodWind @ 11.11.04 19:16)
abv, курсовик ?

да

Автор: abv 15.11.2004 20:10

Цитата(Jahnerus @ 11.11.04 22:27)
Ну вобщем в продолжение темы...

Можешь, в коментаирях надписать, где указыать названия игрушек и их цену... Типа Кукла - 40 рублей, Конструктор -50 и т.п. Чтоб такое получить...

Автор: Jahnerus 18.11.2004 20:15

Как и обещал теперь прога читает файл с данными

Код
uses crt;
type
item = record
  title: string[30];{название}
  price: real;{цена}
  age_1,age_2: byte;{возраст}
end;
var
 i,n:byte;
 maxp:real;
 info: array[1 .. 255] of item;
 s:string;
 f:text;
 er:integer;
begin
assign(f,'c:\data.txt');{c:\data.txt - путь к файлу с данными}
reset(f);
repeat
  n:=n+1;
  readln(f,info[i].title);
  readln(f,s);
  val(s,info[i].price,er);
  if info[i].price>maxp then maxp:=info[i].price;
  readln(f,s);
  val(s,info[i].age_1,er);
  readln(f,s);
  val(s,info[i].age_2,er);
until eof(f);
close(f);
clrscr;
writeln('Цена самой дорогой игрушки ',maxp:4:2);
write('Введите величину ограничивающую стоимость ');
readln(maxp);
for i:=1 to n do begin
with info[i] do begin
  if price<maxp then begin
    writeln('Hазвание: ',title);
    writeln('Цена: ',price:4:2);
    writeln('Возростные границы: от ',age_1,' до ',age_2);
    writeln('Hажмите клавишу для вывода информации о следующей игрушке ');
    readkey;
  end;
end;
end;
writeln('Игрушек с ценой меньшей указанной вами больше нет');
writeln('Следующие игрушки подходят детям в возрасте от 4 до 10 лет');
for i:=1 to n do begin
with info[i] do begin
  if (age_1>3) and (age_2<11) then writeln(title);
end;
end;
readln;
end.


Кажется должно работать, не уверен потому что правил прямо здесь! ;)
Файл который читается должен выглядеть примерно так
Код
Паровоз
34.56
5
8
Самокат
90
7
14

ну вобщем и так далее ...

Автор: avg 22.12.2012 16:28

помогите мне у меня похожая задача)

Пусть дан массив, содержащий сведения об игрушках: указывается название игрушки (например, кукла, кубики, мяч, конструктор и т. д.), ее стоимость в рублях и возрастные границы детей, для которых игрушка предназначена (например, для детей от 2 до 5 лет).
Получите информацию:
1) О названии игрушек, цена которых не превышает 150 рублей и которые подходят до 5 лет;
2) Можно ли подобрать игрушку, любую, кроме мяча, подходящую ребенку 3 лет, и дополнительно мяч так, чтобы суммарная стоимость игрушек не превышала 200 рублей;
3) Имеется ли мяч, ценой 110 рублей, предназначенный детям от 3 до 8 лет, если да, то выведите сведения об этой игрушке.