Перейти к содержанию

Pascal


XyLigan

Рекомендуемые сообщения

Задание:

Разработать структуру типа "запись" для представления информации о лекарствах,имеющихся в аптеке.Запись должна включать следующие поля:наименование,форма,цена,отпускается по рецепту или нет.Создать типизированный файл,содержащий данные для каждого иимеющегося в аптеке лекарств.Написать программу,которая читает данные из файла и отображает их на экране в виде таблицы.

 

uses crt;
type
TCircle=record;
money:integer;
forma,name,recept:string[20];
end;
var
  W:TCircle;
  f:file of TCircle;
 
begin

Assign(f,'1-9.dbf');
Reset(f);
while not eof(f) do begin
Read(f,W);
end;
close(f);

end.

а как вывести на экран,то что в файле?

Ссылка на комментарий
Поделиться на другие сайты

а если прочитать содержимое файла в "список переменных" а потом вывести на экран с помошью writeln?

Read(f, список переменных);

 

Процедура читает из файла f компоненты в указанные переменные. Тип файловых компонент и переменных должны совпадать. Если будет сделана попытка чтения несуществующих компонент, то произойдет ошибочное завершение программы. Необходимо либо точно рассчитывать количество компонент, либо перед каждым чтением данных делать проверку их существования (функция eof, см. выше)

Изменено пользователем kos1nus
Ссылка на комментарий
Поделиться на другие сайты

Помогите с задачкой:

Создать динамический односвязный список из случайных целых чисел в диапазоне от -100 до 100(количество элементов списка вводится с клавиатуры).Написать процедуру вывода списка на экран. Вывести на экран исходный список.Заменить каждое число в списке на сумму этого числа и всех предыдущих элементов списка.Вывести на экран полученный список.

 

uses crt;
type
PNode=^TNode;
TNode=record
info,summa:integer;
next:PNode;
end;
Procedure PrintList(ptr:PNode);
begin
if ptr=nil then
Writeln('Список пуст!')
else
while ptr<>nil  do begin
write(ptr^.info:5);
ptr:=ptr^.next;
end;
writeln;
end;
var
  head,wsp,ptr,one,two,p1,p2:PNode;
  N,i,num:integer;
  S:integer;
  A:array[1..5] of integer;

begin
head:=nil;
Write('Введите количество элементов списка:');
readln(N);
S:=0;

for i:=1 to N do begin
num:=random(201)-100;
New(ptr);
ptr^.info:=num;
A[i]:=num;

if head=nil then begin
head:=ptr;
wsp:=ptr;
end
else begin
 wsp^.next:=ptr;
 wsp:=ptr
 end;
end;
wsp^.next:=nil;
PrintList(head);
ptr^.info:=A[i];
write(A[1]:5);
for i:=2 to N do begin
S:=S+A[i-1];
ptr^.summa:=S;

write(ptr^.summa:5);
end;


end.

 

я вывел,но правда через массив,а как сделать с помощью списка?

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
×
×
  • Создать...