1

Тема: Тангенс і котангенс мінімального елементу массиву функція

Допоможіть

Program proizvedenie;
    Type 
       Matrix=array [1..10, 1..10] of integer;
    Var 
       A: matrix;
       N, m, i, j: integer;
       z:integer;
       P: integer;
      q,w:real;
    Procedure vvod (var m: matrix); 
    Var k , h : integer ;
    Begin
       For i :=1 to n do 
          For j :=1 to n do 
             read(m[i,j]);
    End; 
    Procedure print (m: matrix);
    Var k, h: integer; 
    Begin 
       For i:=1 to n do 
       begin 
          For j:=1 to n do 
             Write (M[i, j]: 4);
          Writeln; 
       end ; 
    End ; 
     
    Procedure Print1 (m:matrix);
    Begin 
       For i:=1 to n do 
         begin
          For j:=1 to n do
         
           begin 
              if m[i,j]=0 then 
                m[i,j]:=3; 
             Write (M[i, j]: 4);
             end;
          Writeln; 
       end ; 
    End ; 
    
 Procedure Print3 (m:matrix);
 
    Begin 
    z:=32676;
       For i:=1 to n do 
         begin
          For j:=1 to n do
         
           begin 
              if (m[i,j]>0) and (m[i,j]<z) then 
                z:=m[i,j]; 
             
             end;
          Writeln; 
       end ;
      
       write (z);
       
    End ; 
     
    Begin 
    
       Writeln ('Vvesty rozmirnist matryci');
       Readln(N); 
       Vvod(a);
       Print(a); 
       Writeln;
       writeln;
       Print1(a);
       print3(a);
       
               End.

потрібно розрахувати тангенс і котангенс мінімального елементу массиву серед додатніх за допомогою функції
програма вже працює, мінімальний елемент массиву знаходить але не знаходить тангенс і котангенс, потрібно це зробити в виді функції але я не зрозумію як звязати мінімальний елемент який зробив в процедурі і функцію

2

Re: Тангенс і котангенс мінімального елементу массиву функція

Функцій тангенс і котангенс у Паскалі немає, замість них треба використовувати косинус і синус отак: http://pascal.org.ua/expressions#math-functions Скоріше за все, у вашому завданні йдеться про те, що треба зробити свої власні функції для тангенса і котангенса. Функції робляться отак: http://pascal.org.ua/procedures-functio … escription

3

Re: Тангенс і котангенс мінімального елементу массиву функція

за тангенс і котангенс я знаю! а як функції звернутись до мінімального елементу массиву який знаходимо в процедурі оце я не знаю

4

Re: Тангенс і котангенс мінімального елементу массиву функція

Все навпаки: вам треба знайти мінімум і запхати його в функцію, а не "функції звернутися до мінімального елементу".

5

Re: Тангенс і котангенс мінімального елементу массиву функція

ffpr2015
Для цього у функцій є параметри. В результаті у вас має вийти щось типу

WriteLn( tan(z) );

Де tan - виклик вашої функції.

6

Re: Тангенс і котангенс мінімального елементу массиву функція

Дивлячись на программу як побудувати функцію для обчислення тангенса і котангенса мінімального елементу?

7

Re: Тангенс і котангенс мінімального елементу массиву функція

Ви хіба в тих посиланнях не побачили "function MaxNumber"? Правда у неї два параметри, а вам достатньо одного, і формула простіша.

8

Re: Тангенс і котангенс мінімального елементу массиву функція

Program proizvedenie;
    Type 
       Matrix=array [1..10, 1..10] of integer;
    Var 
       A: matrix;
       N, m, i, j: integer;
       z,v:integer;
       P: integer;
      q,w,x,c:real;
    Procedure vvod (var m: matrix); 
    Var k , h : integer ;
    Begin
       For i :=1 to n do 
          For j :=1 to n do 
             read(m[i,j]);
    End; 
    Procedure print (m: matrix);
    Var k, h: integer; 
    Begin 
       For i:=1 to n do 
       begin 
          For j:=1 to n do 
             Write (M[i, j]: 4);
          Writeln; 
       end ; 
    End ; 
     
    Procedure Print1 (m:matrix);
    Begin 
       For i:=1 to n do 
         begin
          For j:=1 to n do
         
           begin 
              if m[i,j]=0 then 
                m[i,j]:=3; 
             Write (M[i, j]: 4);
             end;
          Writeln; 
       end ; 
    End ; 
    
 Procedure Print3 (m:matrix);
 
    Begin 
    z:=32676;
       For i:=1 to n do 
         begin
          For j:=1 to n do
         
           begin 
              if (m[i,j]>0) and (m[i,j]<z) then 
                z:=m[i,j];              
             end;
          Writeln; 
       end ;      
       write (z);       
    End ; 
 function func(mas:matrix; k: integer;l,t:real): integer;
begin
k:=32676;
  for i:= 1 to n do
    for j:= 1 to n do
      if (mas[i, j] >= 0) and (mas[i,j]<k) then 
       begin  k:=mas[i,j]
           end;
           l:=cos(k)/sin(k);
           t:=sin(k)/cos(k);
           writeln (k:6,l:6:3,t:6:3);
             end;       
    Begin     
       Writeln ('Vvesty rozmirnist matryci');
       Readln(N); 
       Vvod(a);
       Print(a); 
       Writeln;
       writeln;
       Print1(a);
       print3(a);
       q:=func(a,v,x,c);
       End.

Що я роблю не так, чому моя функція не хоче вирахувати мінімального значення тангенса і котангенса мінімального числа???

9

Re: Тангенс і котангенс мінімального елементу массиву функція

По-перше, вирівняйте код.
По-друге, ви, мабуть, її погано просите. Бо в мене ваша функція все хоче.

10 Востаннє редагувалося ffpr2015 (01.12.2016 00:26:51)

Re: Тангенс і котангенс мінімального елементу массиву функція

Program proizvedenie; 

Type 
   Matrix=array [1..10, 1..10] of integer; 
Var 
   A: matrix; 
   N, m, i, j: integer; 
   z,v:integer; 
   P: integer; 
   q,w,x,c:real; 

Procedure vvod (var m: matrix); 

Var 
   k , h : integer ; 
Begin 
  For i :=1 to n do 
    For j :=1 to n do 
      read(m[i,j]); 
End; 

Procedure print (m: matrix); 

Var 
   k, h: integer; 
Begin 
  For i:=1 to n do 
    begin 
      For j:=1 to n do 
        Write (M[i, j]: 4); 
      Writeln; 
    end ; 
End ; 

Procedure Print1 (m:matrix); 

Begin 
  For i:=1 to n do 
    begin 
      For j:=1 to n do 
        begin 
          if m[i,j]=0 then 
            m[i,j]:=3; 
          Write (M[i, j]: 4); 
        end; 
      Writeln; 
    end ; 
End ; 

Procedure Print3 (m:matrix); 

Begin 
  z:=32676; 
  For i:=1 to n do 
    begin 
      For j:=1 to n do 
        begin 
          if (m[i,j]>0) and (m[i,j]<z) then 
            z:=m[i,j]; 
        end; 
      Writeln; 
    end ; 
  write (z); 
End ; 

function func(mas:matrix; k: integer;l,t:real): integer; 

begin 
  k:=32676; 
  for i:= 1 to n do 
    for j:= 1 to n do 
      if (mas[i, j] >= 0) and (mas[i,j]<k) then 
        begin 
          k:=mas[i,j] 
        end; 
  l:=cos(k)/sin(k); 
  t:=sin(k)/cos(k); 
  writeln (k:6,l:6:3,t:6:3); 
end; 

Begin 
  Writeln ('Vvesty rozmirnist matryci'); 
  Readln(N); 
  Vvod(a); 
  Print(a); 
  Writeln; 
  writeln; 
  Print1(a); 
  print3(a); 
  q:=func(a,v,x,c); 
End. 

Підскажіть що не так?

11

Re: Тангенс і котангенс мінімального елементу массиву функція

Це ви підкажіть, що вам не так. Конкретно: що ви очікуєте побачити, а що бачите.

12

Re: Тангенс і котангенс мінімального елементу массиву функція

хочу щоб функція тангенс і котангенс мінімального елемента знаходила з виводом їх на екран, а вона не вміє, я її не навчив:((

13

Re: Тангенс і котангенс мінімального елементу массиву функція

Будь ласка, переходьте від загальних переживань до конкретного аналізу. Ви хочете отримати X, для цього робите Y, а в результаті маєте Z замість X? То, будь ласка, покажіть це нам. Бо ця програма робить саме те, що ви хочете - можливо, не в тій формі, що ви очікуєте, а можливо, це у вас на комп'ютері якісь проблеми, і ми цього не можемо знати, доки ви нам не дасте власний аналіз ситуації.

14

Re: Тангенс і котангенс мінімального елементу массиву функція

Program proizvedenie; 
Type 
   Matrix=array [1..20, 1..20] of integer; 
Var 
   A: matrix; 
  mas:matrix; 
var i,j,n,k:integer;
procedure vvod (var mass:matrix);
begin
for i:=1 to n do
for j:=1 to n do
read(mass[i,j]);
end;


procedure print (var mass:matrix);
begin
for i:=1 to n do
begin
for j:=1 to n do
begin
write(mass[i,j]:5);
end;
writeln;
end;
end;

procedure conv (var mass:matrix);
begin 
for i:=1 to n do
for j:=1 to n do
begin
if mass[i,j]=0 then
mass[i,j]:=9;
end;
end;

function min(mass: matrix): integer;
var z:integer;
tan,cotan:real;
begin
z:=mass[1,1];
for i:=1 to n do
for j:=1 to n do
begin
if (mass[i,j]>0) and (mass[i,j]<z) then
z:=mass[i,j];
tan:=cos(z)/sin(z);
cotan:=sin(z)/cos(z);
end;
writeln('min=',z:6);
writeln('tg(min)=',tan:6:3);
writeln('ctg(min)=',cotan:6:3);

end;

begin
writeln ('Vvesty razmer matryci');
read(n);
writeln ('Vvesty elementy massiva');
vvod(a);
writeln ('Pochatkova matrycya');
print(a);
writeln ('Kinceva matrycya');
conv(a);
print(a);
writeln ('minimalnyi el, yogo tangens i cotangens');
k:=min(a);
end.


Сам додумався дякую всим

15

Re: Тангенс і котангенс мінімального елементу массиву функція

Тобто проблема була в тому, що їх по рядках треба було виводити. А ви цього не сказали.

16

Re: Тангенс і котангенс мінімального елементу массиву функція

ні, проблема в тому що вона взагалі не рахувала, я просто неправильно функцію організував

17

Re: Тангенс і котангенс мінімального елементу массиву функція

Я думав буде щось таке:

function tan(min: real): real
begin
  tan:=cos(min)/sin(min);
end;
//...
WriteLn(tan(z));