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

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

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

Автор: RAPON 6.04.2008 17:03

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

Автор: мисс_граффити 7.04.2008 1:08

какой именно пункт вызывает затруднения?
вроде все достаточно четко написано...

Автор: RAPON 7.04.2008 12:29

в смысле описать запись?что подразумевается под словом запись?
в смыле ТИПА Bill?


Добавлено через 15 мин.


Вот я сделал программу.


var
f:text;
a:array[1..3] of string;
i:integer;
q,w,e,r:longint;
c:boolean;
begin
c:=false;
assign(f,’c:\winn.txt’);
rewrite(f);
writeln(‘rashetniy shet platelchika’,’ rashet shet poluchatela’,’ summa v rublah’);
for i:=1 to 3 do
begin
readln(a[i]);
writeln(f,a[i]);
end;
close(f);
writeln(‘vvedite nomer’);
readln®;
reset(f);
for i:=1 to 3 do
begin
readln(f,q,w,e);
if r=q then
begin
c:=true;
writeln(e);
end;
end;
close(f);
if c=false then writeln(‘netu’);
readln;
end.

Что и где я неправильно поняЛ??
М
используй теги


Автор: Client 7.04.2008 13:33

Цитата
в смысле описать запись?что подразумевается под словом запись?
Посмотри здесь http://forum.pascal.net.ru/index.php?showtopic=9198

Автор: RAPON 7.04.2008 21:33

const n=4;
type
bill=record
reashetplat,raspoluch,summa:integer;
end;
var
a:array[1..n] of bill
i:integer;
begin
...
пока всё правильно??
а как сделать ввод данных с клавиатуры в массив?
и что значит записи должны быть упорядочены в алфавитном поряке??

Автор: renesko1 7.04.2008 21:51

ВВод данных с клавы осуществи через цикл


const n=4;
type
bill=record
reashetplat,raspoluch,summa:integer;
end;

var
a:array[1..n] of bill ;


......


for i = 1 to n do
begin
with a[i] do
begin
readln....<--то что с клавиатуры
end ;
end ;




А что касается " что значит записи должны быть упорядочены в алфавитном поряке??"
наверное record должна содержать поле типа string (к примеру, имя плательщика ... не знаю)

Автор: volvo 8.04.2008 0:09

Цитата
наверное record должна содержать поле типа string (к примеру, имя плательщика
В задании все написано... По алфавиту должны сортироваться расчетные счета. Как сортировать записи по определенному полю - есть по приведенной выше ссылке.

Автор: renesko1 8.04.2008 0:21

Цитата(volvo @ 7.04.2008 21:09) *

В задании все написано... По алфавиту должны сортироваться расчетные счета. Как сортировать записи по определенному полю - есть по приведенной выше ссылке.



эээ меня просто смутило что у RAPON расчетные счета обазначены как integer .

Автор: RAPON 8.04.2008 12:11

....<--то что с клавиатуры
Я не понял этот момент ...приведи пример..

Автор: RAPON 8.04.2008 12:47

каким образом можно обращаться к к полям в этом массиве?
и ,у меня же в расчётных счетах плательщика и в других полях будут цифры ,что значит сортировать цифры по алфавиту? wacko.gif

Автор: renesko1 8.04.2008 19:50


const n=4;
type
bill=record
reashetplat,raspoluch,summa:integer;
end;

var
a:array[1..n] of bill ;


......


for i = 1 to n do
begin
with a[i] do // к полям записи можно обр. 2 способами 1)через точку bill.summa 2)with bill do begin ...end ;
begin //здеся я обращаюсь с with a[i] те обр. к записи в массиве "a" на месте i
readln(reashetplat);
readln( raspoluch);
readln(summa);
end ;
end ;





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

Автор: volvo 8.04.2008 20:29

Цитата
у меня же в расчётных счетах плательщика и в других полях будут цифры ,что значит сортировать цифры по алфавиту?
Во-первых, кто тебе сказал, что расчетный счет ВСЕГДА состоит ТОЛЬКО из цифр? А во-вторых, в чем проблема отсортировать? Вот смотри:

1) 4987694576345
2) 5609785488536
3) 3835683567767

Только цифры? Да... Можно их занести в НЕстроковую переменную? Нет... Вот и придется тебе заносить это в строки и сортировать по алфавиту (не в том смысле, что алфавит - это "А", "Б", "В", "Г", "Д", ... "Э", "Ю" и "Я", а в том смысле, что алфавит - это набор символов, из которых состоит строка. В твоем случае - "0", "1", "2", "3", "4", "5", "6", "7", "8" и "9"), то есть, по возрастанию/убыванию кодов символов...

Автор: RAPON 8.04.2008 21:54

спасибо.сегодня попробую разобраться,но уверен вопросы ещё появяться)

Автор: RAPON 9.04.2008 15:57

var
c:char;
s:string;
v:integer;
begin
s:='gdfg';
c:=copy(s,1,1);
v:=ord©;
end.

Выдаёт ошибку если же с описать стрингом тогда орд выдаёт ошибку.почему так?
как быть ?в моей программе по этому методу надо будет вытаскивать буквы и смотреть код.

Автор: Ozzя 9.04.2008 16:41

var
c:char;
s:string;
v:integer;
begin
s:='gdfg';
c:=s[1];
v:=ord ( c ) ;
end.

Автор: RAPON 9.04.2008 16:54

Цитата(Ozzя @ 9.04.2008 13:41) *

var
c:char;
s:string;
v:integer;
begin
s:='gdfg';
c:=s[1];
v:=ord ( c ) ;
end.


так же не получается...мне надо именно оператором сору пользоваться потому что мне надо ,из слова вытаскивать по одной букве в цикле,и переводить вытащенные буквы в их коды..

Автор: Ozzя 9.04.2008 17:09

s:='gdfg';
for i:=1 to Length(s) do
Write(ord(s[i]));

Автор: RAPON 10.04.2008 15:01

Спасибо!я всё понял и доделал.

Ещё две задачи..
Опишите, используя структуру записи, школьный журнал.Предусмотрите в записи поля для хранения информации о фамилии учащегося, предмете, оценке. Составьте программу, считывающую с клавиатуры данные об успеваемости учащихся класс и выводящую на экран сведения об отличниках класса, о средней успеваемости учащихся класса.

Мне непонятен момент связанный с предметом..
Предмет должен одинаковый для всех?
Если представить что предметов несколько то тогда зачем под предмет отводить одно поле..?

Напишите программу, которая создает файл данных, хранящих сведения о служащих:
фамилия и инициалы;
должность;
год поступления на работу;
оклад.
Программа должна обеспечивать выполнение следующих действий:
• корректировку или дополнение списка с клавиатуры;
• сортировку по фамилии, окладу или году поступления;
• вывод информации по введенной фамилии;
• запись списка в файл под тем же или новым именем.

Что подразумевается под словом корректировка или дополнение и как это организовать?
И сортировка..тут имеется ввиду сортировка также по алфавиту как в первой задаче?

Автор: Michael_Rybak 10.04.2008 15:32

М
RAPON, создай, пожалуйста, по отдельной теме для каждой задачи.


Автор: RAPON 12.04.2008 23:01

скажите пожалуйста а лучше покажите,каким образом в блое-схеме строятся части когда есть операторы goto и with a[i] do

Автор: Michael_Rybak 12.04.2008 23:40

 ! 
закрыто. см. выше.