pascal - многопоточное программирование
Добавлено: Пн авг 11, 2003 19:11
как в паскле можно зделать двух проточную программу
В каком смысле 2-х проточную?qnx_empty писал(а):как в паскле можно зделать двух проточную программу
ХМ, под Dos?qnx_empty писал(а):не надо чтоб программа делала два действия сразу
Смотря какие действия. Ведь даже из РС Спикера выжимали звуки, похожие на человеческую речь, дёргая его по таймеру, а в конкретном случае это может быть куда легче.qnx_empty писал(а):не надо чтоб программа делала два действия сразу
Код: Выделить всё
program primfile;
uses crt;
var f,g:text;
n:integer;
function esteprim(n:integer):boolean;
var este:boolean;
i,divizori:integer;
begin
este:=true;
divizori:=0;
i:=0;
repeat
inc(i);
if (n mod i = 0) then inc(divizori);
until (i>n)or(divizori>2);
if divizori>2 then este:=false;
esteprim:=este;
end;
begin
clrscr;
assign(f,'in.txt');reset(f);
assign(g,'out.txt');rewrite(g);
while not eof(f) do begin
read(f,n);
if esteprim(n) then write(g,n,' ');
end;
close(g);
end.
Unknown писал(а):Код: Выделить всё
program primfile; uses crt; var f,g:text; n:integer; function esteprim(n:integer):boolean; var este:boolean; i,divizori:integer; begin este:=true; divizori:=0; i:=0; repeat inc(i); if (n mod i = 0) then inc(divizori); until (i>n)or(divizori>2); if divizori>2 then este:=false; esteprim:=este; end; begin clrscr; assign(f,'in.txt');reset(f); assign(g,'out.txt');rewrite(g); while not eof(f) do begin read(f,n); if esteprim(n) then write(g,n,' '); end; close(g); end.
Код: Выделить всё
11 12 13 21 11 12
21 22 23 -> 31 22 13
31 32 33 32 33 23
Код: Выделить всё
Program sdvig;
Uses CRT;
const n=5;
type mass=array [1..n,1..n] of integer;
Procedure Vivod(A:mass);
var i,j:integer;
begin
for i:=1 to n do
begin
for j:=1 to n do
write(A[i,j]:5);
writeln;
end;
end;
var A,B:mass;
i,j,k,m:integer;
Begin
for i:=1 to n do
for j:=1 to n do
begin
write('A[',i,',',j,']=');
readln(A[i,j]);
end;
clrscr;
writeln(' ***Ishodnij massiv***');
Vivod(A);
write(' - Na skoliko pozitsi sdvinuti elementi? K=');
readln(k);
if (k<1) then
begin
writeln(' Osibka!!! K<1');
Exit;
end;
for m:=1 to k do
begin
for i:=1 to n do
for j:=1 to n do
begin
if (i= j) and (i+j= n+1) then B[i,j]:=A[i,j];
if (i<=j) and (i+j< n+1) then B[i,j+1]:=A[i,j];
if (i< j) and (i+j>=n+1) then B[i+1,j]:=A[i,j];
if (i>=j) and (i+j> n+1) then B[i,j-1]:=A[i,j];
if (i> j) and (i+j<=n+1) then B[i-1,j]:=A[i,j];
end;
for i:=1 to n do
for j:=1 to n do
A[i,j]:=B[i,j];
end;
writeln(' ***Polucenaya matritsa***');
Vivod(B);
readkey;
end.