Turbo Pascal

Пух

كنت بلهاء
Модератор
unit komp;

interface
uses crt;
type mas=array [0..50] of integer;
procedure sly(n:integer; var a:mas);
function geo(n:integer;a:mas):real;


implementation
procedure sly(n:integer; var a:mas);
const b=10; c=44;
var j:integer;
begin
for j:=1 to n do a[j]:=b+random(c-b);
end;

function geo(n:integer;a:mas):real;
var s:real; i:integer;
begin
s:=1;
for i:=1 to n do
S:=s*a;
geo:=exp(i*ln(s));
end;
end.



tessio@tessio-desktop ~ $ fpc komp.pas
Free Pascal Compiler version 2.4.0-2 [2010/03/06] for i386
Copyright (c) 1993-2009 by Florian Klaempfl
Target OS: Linux for i386
Compiling komp.pas
26 lines compiled, 0.0 sec
компилятор умные вещи иногда пишет.

если ты в интерфейсе описал function geo(n:integer;a:mas):real; то и в реализации тоже так же само нужно писать (а не менять "а" на "х").
 

Storm_10

Member
нужна помощь по паскалю, я не понимаю почему начитает читать в файле с 2 компоненты или как это назвать в общем 2 переменною, а 1 пропускает =/
Для просмотра изображения необходима регистрация


uses crt;
type
tovaroobig0=record;
nazva:string;
cina:real;
end;

var
i:integer;
tovaroobig:array [1..3] of tovaroobig0;
t:text;
begin
assign (t,'n.txt');
rewrite (t);
for i:=1 to 3 do begin
write ('#',i,' Nazva: ');
readln (tovaroobig.nazva);
write (t,tovaroobig.cina);

write ('Cina: ');
readln (tovaroobig.cina);
write (t,tovaroobig.cina);

end;
close (t);

reset(t);
for i:=1 to 3 do begin
write ('#',i,' Nazva: ');
read (t,tovaroobig.nazva);
write (tovaroobig.cina);

write ('Cina: ');
read (t,tovaroobig.cina);
write (tovaroobig.cina);

end;
close(t);
readkey;
end.
 

Вложения

dreamer

Member
нужна помощь по паскалю, я не понимаю почему начитает читать в файле с 2 компоненты или как это назвать в общем 2 переменною, а 1 пропускает =/
Для просмотра изображения необходима регистрация
А в этих двух строках тебя ничего не смущает?
Код:
readln (tovaroobig[i].nazva);
write (t,tovaroobig[i].cina);
 

Пух

كنت بلهاء
Модератор
причем 2 раза по тексту программы... первый раз при записи в файл, второй раз при чтении с файла.
 

Storm_10

Member
ой йо йо = // отэто потупил, извиняюсь, спасибо...
ещё вопросы:

какого типа должен быть файл чтобы можно было в него записать типы данных рекорд ?
как сделать чтобы считалась нужная переменная из типа рекорд, а не вся строка с остальными переменными в файле?
 
Последнее редактирование:

Пух

كنت بلهاء
Модератор
Насколько я помню, файл должен быть типизированным
Типизированный файл - это последовательность компонент любого заданного типа (кроме типа "файл"). Доступ к компонентам файла осуществляется по их порядковым номерам. Компоненты нумеруются, начиная с 0. После открытия файла указатель (номер текущей компоненты) стоит в его начале на нулевом компоненте. После каждого чтения или записи указатель сдвигается к следующему компоненту.
В твоем случае, тип данных у тебя будет запись(record). Считываешь запись полностью, а потом с считанной записи получаешь доступ к нужному полю и делаешь с ним всё что угодно.
 

Storm_10

Member
Насколько я помню, файл должен быть типизированным


В твоем случае, тип данных у тебя будет запись(record). Считываешь запись полностью, а потом с считанной записи получаешь доступ к нужному полю и делаешь с ним всё что угодно.
:| у меня в типизированный файл должны записываться и стирнг, и риал, и байт, я поставил в строке "file of record" и у меня ошибка что к рекорду нельзя приписать тип байт... но если и получиться считать и записать в типизированный файл рекорд, то как информацию из буфера считаную из файла разделить по нужным категориям типа цена, название, номер
 

Пух

كنت بلهاء
Модератор
type
tovaroobig0=record;
nazva:string;
cina:real;
blabla:byte;
end;
var
tovaroobig:array [1..3] of tovaroobig0;
получаешь запись, в которой 3 поля - стринг,реал,байт.
доступ к blabla получить можно через tovaroobig.blabla
 

Storm_10

Member
получаешь запись, в которой 3 поля - стринг,реал,байт.
доступ к blabla получить можно через tovaroobig.blabla

переменные у меня так же описаны, но как записать в типизированный (какой тип данных ему присваивать? если у меня рекорд) файл и правильно считать с него, у меня не получается это сделать


Всё что нужно для работы с файлами, в том числе и типизированными.
спасибо,Пух, почитаю
 
Последнее редактирование:

Пух

كنت بلهاء
Модератор

Всё что нужно для работы с файлами, в том числе и типизированными.
 

Storm_10

Member
написал программу, а как в ходе выполнения процедуры её можно остановить? а то ридкей мне не помогает, ставлю считывание в конце, но думаю так не правильно...

у меня есть процедура вывода на экран таблицы , но без паузы...

паскаль АБС
 

Пух

كنت بلهاء
Модератор
написал программу, а как в ходе выполнения процедуры её можно остановить? а то ридкей мне не помогает, ставлю считывание в конце, но думаю так не правильно...

у меня есть процедура вывода на экран таблицы , но без паузы...

паскаль АБС
описать в var переменную ch:char;
в конце процедуры, где нужно сделать паузу написать ch:=readkey;
Если не сработает (хотя должно), не вижу ничего плохого в пустом readln;
 

Storm_10

Member
описать в var переменную ch:char;
в конце процедуры, где нужно сделать паузу написать ch:=readkey;
Если не сработает (хотя должно), не вижу ничего плохого в пустом readln;
:lol:ха readkey правильно не работают даже так, всё таки пустой readln; поставил и всё тип топ!

наверно ещё 1 особенность абс паскаля
 

Storm_10

Member
задачка на Turbo Pascal (студент СумГУ,основи програмування та алгоритмічні мови) мож кто поможет. спасибо
:lol: условие не полное, в помощь читай посты выше там написано про работу с типизированными файлами!


Всё что нужно для работы с файлами, в том числе и типизированными.
 

Пух

كنت بلهاء
Модератор
всем очень интересно делать за вас курсач..
 

Storm_10

Member
нужна помощь с динамическими переменными в Турбо Паскаль:

type
z=^zapis;
zapis=record
inf:string[2];
link:z;
end;
процедура вывода работает не правильно, а может правильно не знаю где точно ошибка в программе
procedure vuvod (var last:z);
var t:z;
begin
new(t);
t:=last;
while t<>nil do begin
write(t^.inf,' ');
readln;
t:=t^.link;
end;
writeln('****');
end;
всё решил свою проблему, проблема оказалась и в этой части и в части создания стека
 
Последнее редактирование:

Mr.47

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

переделайте плиз у меня вот есть пример как нужно,мне просто помогите расписать моё задание.Буду благодарна.Спасибо
Вот поиск пример:unit poisk;
interface
uses Crt;
type student=record
fam,group:string;
vidmitka1,vidmitka2,vidmitka3:real;
end;
var f:file of student;
z:student;
vidmitka1,vidmitka2,vidmitka3,v:real;
i,j,k:integer;
n_group:string;
a:string;
procedure poisk1;
implementation
procedure poisk1;
begin
clrscr;
assign(f, 'student.dat');
reset(f);
writeln('Введите номер групы ');
k:=0;
readln(n_group);
reset(f);
writeln;
while not (eof(f)) do
begin
read(f, z);
if n_group=z.group then k:=k+1
end;
close(f);
reset(f);
if k=0 then write('Takogi grupy net')
else
begin
begin
writeln('Spisok studentov ', n_group, ' gropy');
while not (eof(f)) do
begin
read(f, z);
v:=z.vidmitka1+z.vidmitka2+z.vidmitka3;
begin
if (n_group=z.group) and (v>=4)then
begin
write(z.fam);
end;
end;
end;
end;
readkey;
end;
end;
end.


И поэтому примеру сделайте прошу мои задания три.Спасибо
 

win.95an

New Member
народ, нужна помощь!!! вообще не шарю в турбо поскале - зачет горит. задание такое: 1.Скласти та виконати на ЕОМ програму на мові TPascal обчислення значення вказаної змінної за заданими формулами та вхідними даними.Обчислити X=(Y+Z)2 , де y=0,5; z=7.8•10-4.
 

Storm_10

Member
народ, нужна помощь!!! вообще не шарю в турбо поскале - зачет горит. задание такое: 1.Скласти та виконати на ЕОМ програму на мові TPascal обчислення значення вказаної змінної за заданими формулами та вхідними даними.Обчислити X=(Y+Z)2 , де y=0,5; z=7.8•10-4.
а как же одногрупники?:? .... пишите программу, поможем исправить...
 
Верх