Практика программирования (Бейсик, Си, Паскаль)


         

Приостанов после заполнения экрана


REM Приостанов после заполнения экрана

IF J MOD 20=0 THEN INPUT A$
NEXT J
END

Программа 2_24.с (оптимальный вариант)

#include <stdio.h>

#include <conio.h>

main() (

long Xam[1000], н2, хЗ, к5;

int j;

int k2=0,k3=0,k5=0;

clrscr(); -

Xam[0]-l,-

printf("%4d %9d",l,l);

for(i=i; j<1000; j++) {

x2=Xam[k2]*2; x3=Xam[k3]*3;
x5=Xam[k5]*5;
if(x2<=x3 && x2<=x5)
{Xam[j]=x2; k2++;}
if(x3<=x2 && x3<=x5)
{Xam[j]=x3; k3++;}
if(x5<=x2 && x5<=x3)
{Xam[j]=x5; k5++;}
printf("\n%4d %91d",j,Xam[j]);
if(j % 20==0)
getch(); }

getch (); }

Программа 2_24.pas (оптимальный вариант)

program Hamming;

uses crt;

var

Xam:array[i..1000] of longint;

x2,x3,x5 : longint;

j:integer; const

k2:integer=l;

k3:integer=l;

k5:integer=l; begin

Xam[l]:=1;

writeln(l:4,' ',1:10);
for j:=2 to 1000 do

begin

x2:=Xam[k2]*2;

x3:=Xam[k3]*3;
x5:=Xam[k5]*5;
if(x2<=x3) and (x2<=x5) then

begin
Xam [ j ] : =x2;
inc(k2);
end;
if(x3<=x2) and (x3<=x5) then

begin Xam[j] := x3; inc(k3);
end;
if (x5 <= x2) and (x5 <= x3) then begin Xam[j] := x5; inc(k5);
end;
writeln(j:4,' ',Xam[j]:10);
if (j mod 20)= 0 then readln; end; readln; end.

Программа 2_24a.pas (полный перебор)

program Hammingl;
uses crt,WinDos;
var

j,Hour,Hourl,min,mini,sec,seel,hsec,hsecl : word; i,k : longint;
begin clrscr;

gettime(Hour,min,sec,hsec); i:=l; j:=0; repeat k:=i;

while (k mod 2)=0 do k:=k div 2;
while (k mod 3)=0 do k:=k div 3;
while (k mod 5)=0 do k:=k div 5;
if k=l then begin

{ write(i:10); } {отключение вывода } inc(j);

end; inc(i);

until j>=1000;

gettime (Hourl,min1,secl,hsecl) ;

writeln;

writeln(Hour,':',min,':',sec,'.',hsec);
writeln(Hourl,':',minl,':',seel,'.',hsecl); readln; end.

Задание 2.25. Генерация неправильно сокращаемых дробей

Существует очень мало правильных дробей вида m/n, которые можно привести к несократимой дроби "незаконным" образом — зачеркнув одинаковые цифры в числителе и знаменателе. Например:

Содержание  Назад  Вперед