Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    [pascal] aiuto procedure

    chi mi puo inviare iìun esercito dove e possibile trovare le procedure

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288

    Moderazione

    Originariamente inviato da multififa
    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")?

    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...

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    156
    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.
    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.

  4. #4
    ma va che lui voleva vedere un esercito non un esercizio!

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  5. #5
    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.

  6. #6
    Guardando questo:
    codice:
    procedure somma(op1,op2:integer);
    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.

    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.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  7. #7
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    156

    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:

    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;

  8. #8
    ah ecco mi sembrava...ho fatto una via di mezzo tra il c e il pascal.

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  9. #9
    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.

  10. #10
    Si perchè la funzione restituisce un valore quindi prima lo devi mettere in una variabile

    codice:
    risultato:= calcmedia+10;
    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.