Pascal úloha

Programovacie jazyky, rady, poradňa...
artik
Novice
Novice
Príspevky: 2
Registrovaný: 05 nov 2012, 16:56

Pascal úloha

Príspevok od používateľa artik »

Neviem presne ako mám zapísať do funkcie tento príklad, je to ciferný súčet :)

Kód: Vybrať všetko

uses crt;
var cif:integer;
    cislo:longint;

begin
clrscr;

write('Zadajte cislo a ja vypocitam jeho ciferny sucet');
readln(cislo);
   if cislo<0 then cislo:=-cislo;
     begin
      cif:=0;
       while cislo<>0 do
        begin
         cif:=cif + cislo mod 10;
         cislo:=cislo div 10;

        end;
     end;

writeln('ciferny sucet je: ', cif);
readln;
end.
thx
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Pascal úloha

Príspevok od používateľa BX »

Vypýtaš si číslo a zavoláš funkciu ako cif := sucet(cislo);
Tá funkcia bude vyzerať nejako takto (snáď si dobre pamätám pascal)

Kód: Vybrať všetko

function sucet(cislo:longint) : integer
var cif : integer;
begin
end;
A medzi begin end pôjde všetko to, čo tam máš teraz medzi readln a writeln(cif...) :)
artik
Novice
Novice
Príspevky: 2
Registrovaný: 05 nov 2012, 16:56

Re: Pascal úloha

Príspevok od používateľa artik »

mám to :) mal som problem s tým že som nevedel ako zavolať tú funkciu do programu. Nech sa páči , ak niekto bude potrebovať :)

Kód: Vybrať všetko

uses crt;
 var cif,x:integer;
    cislo:longint;
    o,a,b,c:real;
   function Ciferny_sucet(cislo:longint):longint;
    begin
     
     if cislo<0 then cislo:=-cislo;
     begin
      cif:=0;
       while cislo<>0 do
        begin
         cif:=cif + cislo mod 10;
         cislo:=cislo div 10;

        end;
     end;
    end;
begin
clrscr;

write('Zadajte cislo a ja vypocitam jeho ciferny sucet');
readln(cislo);
ciferny_sucet;
writeln('ciferny sucet je: ', cif);


readln;
end.
94jakub
Guru wannabe
Guru wannabe
Používateľov profilový obrázok
Príspevky: 2037
Registrovaný: 15 dec 2006, 13:18
Bydlisko: Martin/BA
Kontaktovať používateľa:

Re: Pascal úloha

Príspevok od používateľa 94jakub »

Asi stále ani nevieš :)
Tú funkciu si zavolal ako procedúru.
Funkcia sa volá takto:

Kód: Vybrať všetko

program Program;
var dž : integer;

function NazovFunkcie(x:integer):integer;
var y : integer;
begin
  y := x + 2;
  NazovFunkcie := y; 
end;

begin
  dž := NazovFunkcie(4);
end.
BX
Addict
Addict
Používateľov profilový obrázok
Príspevky: 4572
Registrovaný: 10 jan 2008, 15:30

Re: Pascal úloha

Príspevok od používateľa BX »

artik: Funkciu ber ako podprogram, ktorý má "vlastnú hlavu". Má vlastné premenné, ktoré sa vytvoria na jej začiatku a zničia po jej skončení. Ešte pred zánikom ale funkcia posledným dychom dokáže povedať, čo spočítala (jedinú hodnotu - premenná s rovnakým názvom, ako je názov funkcie)
Ty potom z hlavného programu volaš a = funkcia(x,y);, kde x,y sú parametre pre funkciu a do a sa priradí ten posledný výdych. Toto využívaj a nemanipuluj vo funkcií s globálnymi premennými, ktoré sú určené (hlavne) pre hlavný program.
w00dy
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 225
Registrovaný: 21 feb 2011, 13:59
Bydlisko: Žiar Nad Hronom
Kontaktovať používateľa:

Re: Pascal úloha

Príspevok od používateľa w00dy »

nechcem zakladať zbytočne novú tému tak sa spýtam mám zadanú úlohu : Napíšte program na výpočet obsahu trojuholníka, keď sú známe dĺžky jednotlivých strán a, b a c. Na riešenie využite Heronov vzorec.

Podľa http://cs.wikipedia.org/wiki/Heron%C5%AFv_vzorec vieme že najskôr musíme zistiť Sko cez vzorec S=(a+b+c)/2 a následne to dosadíme do druhého vzorca na výpočet samotného obsahu...

prvý vzorec na výpočet S - S:= (a+b+c)/2;
druhý vzorec na výpočet obsahu - Obsah:=SQRT (S x(S-a)x(S-b)x(S-c));

nájde sa niekto kto by si našiel čas a trošku by mi pomohol to zostaviť a aj objasniť ? :)
mirak2
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6719
Registrovaný: 18 sep 2005, 13:44
Bydlisko: Prague, CZE / Kosice, SVK

Re: Pascal úloha

Príspevok od používateľa mirak2 »

kde je problem? nacitanie 3 integer vstupov z klavesnice, vypocet s cez vzorec, nasledne dalsi vzorec a vypisanie na obrazovku... skutocne nevidim KDE je problem...
PS: hlavne zacni ty.
w00dy
Light Star
Light Star
Používateľov profilový obrázok
Príspevky: 225
Registrovaný: 21 feb 2011, 13:59
Bydlisko: Žiar Nad Hronom
Kontaktovať používateľa:

Re: Pascal úloha

Príspevok od používateľa w00dy »

problém je v tom, že nemám absolútne žiadnu skúsenosť v používaní tohto programu a vôbec netuším čo a ako... a preto potrebujem pomoc.
wrabcak
Light Expert
Light Expert
Používateľov profilový obrázok
Príspevky: 53
Registrovaný: 10 dec 2012, 13:40
Bydlisko: BrnoCZ / NitraSK

Re: Pascal úloha

Príspevok od používateľa wrabcak »

skus napisat kod aspon co vies a v pripade ze nieco nepoje ta opravime, ale myslim ze neni dobry napad aby ti sme niekdo hodil komplet cely kod, ty to odovzdas a ani nebudes vedet o com je rec...
Gregi
Light Star
Light Star
Príspevky: 224
Registrovaný: 24 mar 2005, 11:34

Re: Pascal úloha

Príspevok od používateľa Gregi »

Uplne zaklad pascalu. Inak kdesi som to tu uz postoval formou funkcie, skus to dohladat a pouzit to. Splhnes si.
Zaklad ale toho vsetkeho je POCHOPIT system fungovania.

Kód: Vybrať všetko

Program OBSAH_TROJUHOLNIKA;
uses Crt;
var
  a,b,c,s,o: Real;

BEGIN
  ClrScr;
  Write('Zadaj velkost stran (a,b,c - oddelene medzerou): ');
  ReadLn(a,b,c);
  s := (a + b + c) / 2;
  o := sqrt(s*((s - a)*(s - b)*(s - c)));
  Write('Obsah je: ',o:2:4);
  ReadLn;

END.
To Artik:

Kód: Vybrať všetko

Program CIFERNY_SUCET_CISLA;
uses Crt;
var
  cislo: longint;

function Ciferny_sucet(cislo: longint): longint;
var
  cifra: Word ;
begin
  cifra := 0;
  while cislo <> 0 do begin
    cifra := cifra + cislo mod 10;
    cislo := cislo div 10;
  end;
  Ciferny_sucet := cifra;
end;

BEGIN
  ClrScr;
  Write('Zadaj cislo: ');
  ReadLn(cislo);
  Write('Sucet cifier je: ',Ciferny_sucet(cislo));
  ReadLn;

END.
Napísať odpoveď