knepsuhell
18.01.2020 20:05

Как мне сделать так, чтобы можно было в proc3 и proc 4 узнать ввёл пользователь данные или нет. Если данные не введены, то вывести "введите данные".
program k3;
uses crt;
var n:byte; s,d:real; a,b:real; m:smallint;

procedure proc1 (var a:real; b:real);
begin
writeln ('vvedite nizhnuu graniczu intervala');
readln (a);
writeln ('vvedite verhnuu graniczu intervala');
readln (b);
end;

procedure proc2 (var m:smallint);
begin
writeln ('vvidite chislo razbienii');
readln (m);
end;

procedure proc3 (var s:real);
var i:integer; h,x:real;
begin
writeln ('vi ne vveli granicy intervala i chislo razbienii');
proc1 (a,b);
proc2 (m);
h:=(b-a)/m;
x:=a+h/2;
for i:=1 to m do
begin
s:=s+(2*x*x*x+(-2)*x*x+3*x-11);
x:=x+h;
end;
s:=s*h;
writeln ('s= ',s);
readln ();
end;

procedure proc4 (var d:real);
var p:real;
begin
proc3 (s);
p:=(2*((b*b*b*b)/4)+(-2)*((b*b*b)/3)+3*(b*b)/2-11*b)-(2*((a*a*a*a)/4)+(-2)*((a*a*a)/3)+3*(a*a)/2-11*a);
d:=(p-s)/p;
writeln ('d= ',d);
readln ();
end;

begin
repeat
clrscr;
writeln ('granicy intervala - 1');
writeln ('chislo razbienii - 2');
writeln ('integeral - 3');
writeln ('pogreshnost - 4');
writeln ('exit - 0');
write ('select program: ');
readln (n);
case n of
1:proc1 (a,b);
2:proc2 (m);
3:proc3 (s);
4:proc4 (d);
end;
until n=0;
readln (); end.​

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
HELPLIZA1
06.05.2021 16:31
Программа, которая использует два массива

var 
c, a: array[1..20] of integer; 
i: integer;
begin 
write('Первый массив '); 
for i := 1 to 20 do   begin   
c[i] := i * (-5);   
write(c[i], ' '); 
end; 
writeln; 
write('Преобразованный массив '); 
for i := 1 to 20 do   begin   
a[i] := c[20 - i + 1];   
write(a[i], ' '); 
end;  
end.

ИЛИ  Программа не использующая два массива, а просто переворачивающая первый

var 
c: array[1..20] of integer; 
i: integer;
begin  write('Первый массив '); 
for i := 1 to 20 do   begin   
c[i] := i * (-5);   
write(c[i], ' '); 
end; 
writeln; 
write('Преобразованный массив '); 
for i := 20 downto 1 do  write(c[i], ' '); 
end.

Обе программы работают!
0,0(0 оценок)
Ответ:
danisdigger
21.11.2021 23:38
Поиск простых делителей числа:

var i,j,n:longint;
    f:boolean;
begin
 writeln('Введите число');
 readln(n);
  if n<2 then writeln('Простых делителей нет')
  else
   begin
    write('Число ',n,' ','= 1');
    for i:=2 to n do
     if n mod i=0 then
      begin
       f:=true;
       j:=2;
       while f and(j<=round(sqrt(i/2)))do
        begin
         if i mod j=0 then f:=false
         else j:=j+1;
        end;
      if f then write('*',i);
     end;
   end;
end.

Тестовое решение:

Введите число
2345
Число 2345 = 1*5*7*35*67
0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота