program pack_unpack;
uses Crt;
var
H,M,S:integer;
T:double;
function pack_time(H,M,S:integer):double;
{ Упаковка времени - перевод часов (H)
минут (M) и секунд (S) в часть суток }
begin
pack_time:= (H*3600.0 + M*60 + S)/86400.0;
end;
procedure unpack_time(t:double;var H,M,S:integer);
{ Распаковка времени - перевод части суток
в часы (H), минуты (M) и секунды (S) }
var
t1:double;
begin
t1:=t*86400;
H:=trunc(t1/3600.0);
t1:=t1-3600.0*H;
M:=trunc(t1/60.0);
S:=trunc(t1-60.0*M);
end;
begin {main}
clrscr;
H:=18; M:=0; S:=0;
T:=pack_time(H,M,S);
writeln(H:2,':',M:2,':',S:2,' =',T:6:2);
T:=0.5;
unpack_time(T,H,M,S);
writeln(H:2,':',M:2,':',S:2,' =',T:6:2);
readln;
end.Разные коды, кому может понадобится
Сообщений 31 страница 36 из 36
Поделиться3131-01-2008 17:00:51
Поделиться3228-03-2008 02:35:52
Автор , а можно вас попросить написать код, который бы искал в матрице размером ni nj (const=10) номер столбца ( j ) в котором наибольшее кол-во одинаковых элементов
вывести номер столбца.
(ni , nj вводиться с клавиатуры)
впринципе нужен сам код вычисления этого столбца,а дальше я его применяю для процедуры в следующем коде.
program laba_1;
uses crt;
const
nmax=10;
type
mas=array[1..nmax,1..nmax] of integer;
var
m:mas;
i,j,ni,nj,strnull,copies:integer;
function nullelement (m:Mas):integer;
begin
strnull:=0;
for i:=1 to ni do
for j:=1 to nj do
if m[i,j]=0 then
begin
inc(strnull);
j:=nj;
end;
nullelement:=strnull;
end;
procedure copyelement(m:mas;var copies:integer);
var
smax,jmax,sum:integer;
begin
< ??? CODE ???>
end;
begin
clrscr;
writeln('Введите размеры матрицы:');
repeat {Задаем размеры матрицы в пределах ограниченных константой}
write('введите кол-во строк ');
readln(ni);
if (ni>nmax) and (ni<=0) then
writeln('недопустимое значение, повторите ввод');
until (ni<=nmax) and (ni>0);
repeat
write('введите кол-во столбцов: ');
readln(nj);
if (nj>nmax) and (nj<=0) then
writeln('недопустимое значение, повторите ввод'');
until (nj<=nmax) and (nj>0);
writeln('введие матрицу построчно : '); {ввод матрицы}
writeln;
for i:=1 to ni do
begin
for j:=1 to nj do
read(m[i,j]);
readln;
end;
nullelement(m);
if nullelement(m) = 0 then
writeln('строк содержащих нулевые элементы не найдено')
else
writeln ('кол-во строк содержащих нулевые элементы = ',nullelement(m));
copyelement(m,copies);
writeln('Столбец с наибольшим кол-вом одинаковых элементов = ',copies);
end.Поделиться3329-03-2008 15:26:03
Держи:
readln(n,m);
for i:=1 to n do
for j:=1 to m do
read(a[i,j]);
max_nom:=1;
max_sum:=1;
for j:=1 to m do
begin
for i:=1 to n do
begin
sum:=1;
for l:=i+1 to n do inc(sum,ord(a[i,j]=a[l,j]));
if sum>max_sum then
begin
max_sum:=sum;
max_nom:=j;
end;
end;
end;
write(max_nom);Поделиться3430-03-2008 12:19:49
Чето код все время выдает 1 столбик. 
Поделиться3531-03-2008 14:49:09
Измени
"sum:=0;" на "sum:=1;"
Поделиться3607-04-2008 20:40:18
Небольшой код по работе с записями и типизированными файлами...код максимально понятно написан.
{Работа с записями и типизированными файлами в TP7}
{+----------------Mixazzz 7.03.08----------------+}
program fileloader;
uses crt;
const
nmax=10;
type
stud = record
name:string;
age:byte;
end;
var
group:array[1..nmax] of stud;
i,n:integer;
f:file of stud;
begin
clrscr;
writeln('+-----Работа с базой данных-----+');
repeat
writeln('Введите кол-во студентов');
readln(n);
if (n<1) or (n>nmax) then
clrscr;
writeln('Ошибка!Неверное значение');
until (n>=1) and (n<=nmax);
clrscr;
i:=0;
while i<n do
with group[i] do
begin
clrscr;
write('Введите имя ',i+1,'-ого студента : ');
readln(group[i].name);
write('Введите возраст текущего студента : ');
readln(group[i].age);
inc(i);
end;
if i=n then
clrscr;
writeln('Сохранение записи (студенты) в файл t.txt');
assign(f,'t.txt');
{$I-}
reset(f);
{$I+}
if IOResult <> 0 then
begin
write('Ошибка!Файл t.txt не найден');
halt;
end;
rewrite(f);
for i:=1 to n do
write(f, group[i]);
close(f);
write('Файл сохранен, нажмите любую клавишу для выхода');
readkey;
end.Отредактировано Mixazzz (12-04-2008 01:53:52)