chi mi puo inviare iìun esercito dove e possibile trovare le procedure
chi mi puo inviare iìun esercito dove e possibile trovare le procedure
Ho modificato il titolo della discussione per renderlo maggiormente rappresentativo del contenuto, sperando di aver capito ciò che desideri ("esercito" sta per "esercizio")?Originariamente inviato da multififa
chi mi puo inviare iìun esercito dove e possibile trovare le procedure
In caso contrario, prenditi un po' di tempo per spiegare meglio cosa desideri o qual è il tuo quesito.
Inoltre, ti segnalo il Regolamento che contiene tutte le norme per il buon utilizzo di quest'area del forum.
Ciao!
MARCO BREVEGLIERI
Software and Web Developer, Teacher and Consultant
Home | Blog | Delphi Podcast | Twitch | Altro...
se la tua domanda era vedere come si usa una procedura ecco quà. ovviamente in questo progr l'uso di questa procedura allunga solo la stesura del codice.codice:program primo; uses crt; var a, b:integer; procedure somma(op1,op2:integer); var somma:integer; begin somma:=op1+op2; writeln('la somma tra',op1,' e ',op2,' è: ',somma); end; begin clrscr; write('Inseriscii un numero: '); readln(a); write('Inserisci un altro numero: '); readln(b); somma(a,b); readln; end.
ma va che lui voleva vedere un esercito non un esercizio!
Ciao.
mi faresti un esempio su una funzione ad es. calcolare la media
es.
io ho un programma tipo questo
mi potreste indicare che tipo di variabili si mettono affianco alle porcedure e come si fa la function calcmedia
codice:program voti; const maxvoti=100; Type tipovoto=1..100; voti=array [1..maxvoti] of integer; Var I:integer; voto:voti; totale:integer; N:integer; procedure leggistud;??????????????CHE VARIABILI SI METTONO QUI var txtvoti:text; Begin assign (txtvoti, 'C:\miei\esercizi\voti.txt'); Reset (txtvoti); I:=1; Totale:=0; while not (eof (txtvoti)) do begin readln (txtvoti, voto[i]); totale:=totale+voto[i]; i:=i+1; end; end; QUI DOVREI FARE LA FUNZIONE PER CALCOLARE LA MEDIA (I DATI DI INPUT SONO totale E i. begin leggistud; N:=I; writeln (calcmedia); Writeln ( 'VOTO':10, 'GRADO':20); For i:=1 To N do begin Write(voto[i]:10); If (voto[i]>(calcmedia+10)) then write('Soddisfacente':20) else If ((voto[i]+10)<(calcmedia)) then write('Insoddisfacente':20) else write('buono':20); writeln; end; readln; end.
Guardando questo:
In pratica dopo il nome della procedura tra parentesi devi mettere le variabili per il passaggio dei parametri dichiarando di che tipo sono, in questo caso specifico al momento di chiamare la procedura devi passare 2 parametri di tipo intero.codice:procedure somma(op1,op2:integer);
per le funzionsi devi fare:
function calcmedia(totale,i:integer);
media:= totale div i; (presumo che i sia il numero di elementi e totale la loro somma)
return media
end;
Sulla funzione non sono molto sicuro di come si chiude l'intestazione mi pare sia giusta ma magari qualcuno si ricorda più di me.
Ciao.
devi dichiarare il tipo che restituirà la funzione. in questo caso, dato che si parla di media, la funzione restituisce un valore reale quindi la sintassi sarà questa:
per le funzionsi devi fare:
function calcmedia(totale,i:integer);
media:= totale div i; (presumo che i sia il numero di elementi e totale la loro somma)
return media
end;
Sulla funzione non sono molto sicuro di come si chiude l'intestazione mi pare sia giusta ma magari qualcuno si ricorda più di me.
Ciao.
function calcolamedia(totale,i:integer):real;
poi a differenza delle procedure devi assegnare un valore al nome della funzione quindi la funzione sarà così:
function calcmedia(totale,i:integer):real;
begin
calcmedia:=totale div i; CALCMEDIA è il nome della funz.
end;
ah ecco mi sembrava...ho fatto una via di mezzo tra il c e il pascal.
Ciao.
mi da errore dove ho messo in grassetto.sicuramente è un problema dellla procedura calcmedia. in quanto togliendola e scrivendola normalmente nella parte principale del programma funziona. Pero a me serve che la media venga calcolata con una procedura a parte.
l'errore che mi da e questo:
esercizio3.pas:46: too few arguments to function `Calcmedia'
esercizio3.pas:49: too few arguments to function `Calcmedia'
in poche parole mi da errore dove richiamo la funzione della media. dove avrò sbagliato???????
codice:program voti; const maxvoti=100; Type tipovoto=1..100; voti=array [1..maxvoti] of integer; Var I:integer; voto:voti; totale:integer; N:integer; procedure leggistud; var txtvoti:text; Begin assign (txtvoti, 'C:\miei\esercizi\voti.txt'); Reset (txtvoti); I:=1; Totale:=0; while not (eof (txtvoti)) do begin readln (txtvoti, voto[i]); totale:=totale+voto[i]; i:=i+1; end; end; function calcmedia (i,totale:integer):real; begin calcmedia:=Totale/I; end; begin leggistud; N:=I; writeln (calcmedia); Writeln ( 'VOTO':10, 'GRADO':20); For i:=1 To N do begin Write(voto[i]:10); If (voto[i]>(calcmedia+10)) then write('Soddisfacente':20) else If ((voto[i]+10)<(calcmedia)) then write('Insoddisfacente':20) else write('buono':20); writeln; end; readln; end.
Si perchè la funzione restituisce un valore quindi prima lo devi mettere in una variabile
Ciao.codice:risultato:= calcmedia+10;