Лице и обиколка на правоъгълник и квадрат

Да се напише програма, съдържаща функции за пресмятане на лице и обиколка на правоъгълник и квадрат. С тяхна помощ да се пресметне:

  • площта на имоти с форма на буквата L и П, с дължина и широчина 40 метра и дебелина на „линията“ на буквата 10 м
  • колко линейни метра мрежа ще са необходими за ограждането им
Публикувано в с етикети . Постоянна връзка.

6 Responses to Лице и обиколка на правоъгълник и квадрат

  1. Боряна каза:
    //дано да става, като изчисленията са така - за имоти с друг размер програмата
    //няма да работи
    program Project1;
    
    function LicePr(a,b:integer):integer;
    begin
    Result:=a*b;
    end;
    
    function ObikolkaPr(a,b:integer):integer;
    begin
    Result:=2*(a+b);
    end;
    
    function LiceKv(a:integer):integer;
    begin
    Result:=a*a;
    end;
    
    function ObikolkaKv(a:integer):integer;
    begin
    Result:=4*a;
    end;
    
    begin
      Write('Ploshta na imot s formata na bukva L e ');
      WriteLn(LiceKv(40)-LiceKv(30));
      Write('Neobhodima mrega (v metri): ');
      WriteLn((ObikolkaPr(40,10)-10)+(ObikolkaPr(30,10)-10));
      WriteLn;
    
      Write('Ploshta na imot s formata na bukva P (na kirilica) e ');
      WriteLn(LiceKv(40)-LicePr(20,30));
      Write('Neobhodima mrega (v metri): ');
      WriteLn(2*ObikolkaPr(40,10)+20);
      ReadLn;
    end.
    
    • Данаил каза:

      Браво, много добре! Да, добре си съобразила и това, че за имоти с други размери няма как това да работи. Виж коментарът ми към решението на Светли как може да стане така, че да работи и тогава.

  2. svetlieti каза:
    (*Да се напише програма, съдържаща функции за пресмятане на лице и обиколка на
    правоъгълник и квадрат. С тяхна помощ да се пресметне:
    площта на имоти с форма на буквата L и П, с дължина и
    широчина 40 метра и дебелина на „линията“ на буквата 10 м
    колко линейни метра мрежа ще са необходими за ограждането
    им*)
    
    program Project1;
    
      function Lice(a,b:integer):integer;
      begin
        if a=b then
           Result:=a*a
        else Result:=a*b;
      end;
    
      function Obikolka(a,b:integer):integer;
      begin
        if a=b then
           Result:=4*a
        else Result:=(2*a)+(2*b);
      end;
    
    var
      a,b,S1,S2,O1,O2 :integer;
    begin
      Writeln('Vavedi a i b:');
      Readln(a,b);
    
      (*площта на имот с форма L*)
      S1:=Lice(a,b)+Lice(30,b);
    
      (*площта на имот с форма П*)
      S2:=2*(Lice(a,b))+Lice(20,10);
    
      (*колко линейни метра мрежа ще са необходими
      за ограждането им*)
    
      (*площта на имот с форма L*)
      O1:=Obikolka(a,b)+2*30;
    
      (*площта на имот с форма П*)
      O2:=2*(Obikolka(a,b))+20;
    
      Writeln('Liceto na imot s forma L: ',S1);
      Writeln('Liceto na imot s forma P: ',S2);
      Writeln('Neobhodimi sa ',O1, ' metra mreja');
      Writeln('Neobhodimi sa ',O2, ' metra mreja');
      Readln;
    end.
    
    • Данаил каза:

      Браво, Светли, много добре! И добре си го коментирал! Но според мен няма нужда от командата if a=b then в двете функции – за компютърът е все едно дали ще смята a*a или a*b, а проверката на условието е още една команда, която той трябва да изпълнява, а и малко усложнява кода на програмата. Друго, което може да се отбележи, е или да укажеш a и b като твърди стойности, или където ти е 30 да е a-b, защото така както си го направил, ако въведа за a и b 50 и 20, програмата няма да смята вярно.

  3. Marin каза:
    #include <cstdlib>
    #include <iostream>
    
    using namespace std;
    
    int Lice(int a, int b)
    {
      return a*b;
    }
    
    int Obikolka(int a, int b)
    {
      return 2*a+2*b;
    }
    
    int main() {
    
    cout<<"Lice L e"<<Lice(30,10)+(40,10)<<endl; // ????????? ?????? ?? L
    
    cout<<"Obikolka L e"<<Obikolka(40,10)+(30,10)<<endl; // ????????? ?????????? ?? L
    
    cout<<"Lice ? e"<<Lice(30,10)+(40,10)+(30,10)<<endl; // ????????? ?????? ?? ?
    
    cout<<"Obikolka ? ?"<<Obikolka(30,10)+(30,10)+(40,10)<<endl; // ????????? ?????????? ?? ?
    	
    	
     	return 0;
    }

Вашият коментар