Anteprima
Vedrai una selezione di 4 pagine su 14
Puntatori in C Pag. 1 Puntatori in C Pag. 2
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Puntatori in C Pag. 6
Anteprima di 4 pagg. su 14.
Scarica il documento per vederlo tutto.
Puntatori in C Pag. 11
1 su 14
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Invertiamo un vettore utilizzando puntatori in C

N0ser < ++; ;= Vllt" )Hd"( nati (printf ] ; {,} ]àoreturn ;0} ; main:}(void invertiamo [ direint )]vehint ,tenueiint ;, "}diniz )ili ifar < +0 +;= ; i ]velttemp [ ;= idive ][ i [ 1-] veltvelt ;-= ][ idire 1- tempvette ;=_}} proprioil gestisce vettoriperchéche èusando i Cesplicito facessipuntatoriAnche ilosto comenon sese ,così .può esserciNON return velt . l'Quando elementoindirizzo delin realtà primovettore passopasso un ., esplicitando puntatorela ilstessa fareLa possocosainvention )(Void int # int ;,int' din( })invention intvoid v r, Dobbiamo lascegliere primaint itemp ; o, }( i-O votazioneitt ) la secondaifai dire< / eo2; ;* ( )temp vti coerentirimanere;= .* ( )* i( dire)Uti meglio la prima1+v ;= - ._* i( )din 1temp1-v =+ ;- la}} modi vieneentrambi usatoin ipuntatore anche lose noncome ,chiamata esplicitamentefacciamougualelamentre sarebbe :)( Ninverti an a ;,Possibile variazione modifica copia: una

#include <stdio.h>

void somma(int A[], int B[], int C[], int dim) {
    for (int i = 0; i < dim; i++) {
        C[i] = A[i] + B[i];
    }
}

int main() {
    int N;
    printf("Inserisci la dimensione degli array: ");
    scanf("%d", &N);

    int A[N], B[N], C[N];

    printf("Inserisci gli elementi dell'array A:\n");
    for (int i = 0; i < N; i++) {
        scanf("%d", &A[i]);
    }

    printf("Inserisci gli elementi dell'array B:\n");
    for (int i = 0; i < N; i++) {
        scanf("%d", &B[i]);
    }

    somma(A, B, C, N);

    printf("Il risultato della somma tra A e B:\n");
    for (int i = 0; i < N; i++) {
        printf("%d ", C[i]);
    }
    printf("\n");

    return 0;
}

3printf an ;,} 0 ;return} }(void )intsounnadec [ dinè ]]b [] int intint c ,,,int i rS ;,,0r ;= ( dille })-1 ison ii 0> = ;;= --[][ i ]ib r+ ;S a += ][ %i ioS=c ;stror ;='}anche quindistringhe modole nello stessofunzionanoarraysono , .L' dimensione perchélachediversa stringheabbiamoè delleunica passiamoquando sappiamon oncosa , ,'che 'finiscono 10con .Chan )SE Ntt ; }Void ) NOTAZIONE) PRIMA[8 ( chan S ; → proprio come↳ direno negli array*( chan )Void NOTAZIONESECONDAs ; →es .Scrivere un sottoprogramma che acquisisce una stringa, conta le vocali e restituisce talenumero. Poi scrivere un programma che acquisisce una stringa, chiama il sottoprogrammaa-e stampa il risultato. immaginiamo contengaminuscolicaratterisololistatioinclude# c >.define# N 30 )Cali ]chan [cantavoiut ( ;s})(mainint chan )in +1sta ; vocaliint nv ; numero→ ] "^[( " )In%scanf str ;, )(vocali strcontonu ;= _" "( )printf Tod mi ;,0return

}

}

})(

chan ]coli sicontavoiut int i c ;,0c ;= {)'( i i'][ !i 10fan S ++0 ;; == }' ''' '' )]'''( '] ] stè[[Il] i i[ [ ] Ilif ili ssi is il Sa == oe = n==== = ==++e ;I}return ;c} avessimo sarebbeinvece ugualestatose usato puntatoreun .,) {*cantonali (int chan sint ;c0 ;e = {)''( *nihil ! 10s = * '* /* ''' ''' " )( '* * 'iif IlIlS S Il SIlaS S el0e= = === = === =;++(}sit ;} la chiamata ugualesarebbe .return ;c}MATRICI PUNTATORIe bidimensionaliMATRICI array→ costantianche puntatorile memorizzatematrici comesono][ [aiut ] 5nom↳ puntatore dellaal di colonne matricead paridi dimensionecostante numeroanayun( * [) ]int 5 ;p mediocretp → [ )[ a) matrice1 nella memoria-:""" " i. i9))[unti iI)MEDIO-12p →* [int ] 5di5 arrayp → ad^ !sbagliatointeripuntatori¥ :( ][)*int matrici5 ;p →-15][ ]int 10 ;un( ) [* ]5int ;p;mp = [

a) * )([ [ ]9 9o ⇐ >; opne = =righedi duemi+2 sposto;=pp →( )* [[ ] ]2) [7 7o op ;; un= = #-:pvicolo)p →t.int[ 1)[ )0unpm →]][[ 510ne ; i*int semplicepuntatore;p 9))[→ [ O, inad intero non :anay ÷,interidi i i][][due o0 9);p [[1)= 1un I* 9 ]a) 9[ [ne⇐ O ;);p = = i* ( 13--7MIO []) 7 > ;^pt ⇐= «terzanellailvogliamo puntatorese spostare colonnedel didobbiamoriga spostarci numero, ([ 3)[ ]2) 5*2 puntatore3 5 sposto; +in p p= →+= |* 55 inseriscop ;= ]dovuto→ ] -10-1=3][ iunaCOLONNE +i jN* _ ledla allaarrivato'perche piudirighe riga mi spostoè stessamicui giustaalla+1rigaspento colonna colonnasintassila )Esempio vedereper che èesplicitaredobbiamo perché sappiamo memorizzata puntatorecomeµ( [ Passarlo[81 ] n-r.int#j--Void sempre81 anchecolonneCOLONNE diN !int ] !righea cuiint !eseguosunumero →e- , è la matricemigliore tuttamodo suse↳ ( [Void int81.1 * ][ COLONNEa) )intintN ncnr ;_ ,

,* ad)( puntatoreVoid int int intft intero2 nc ;p nr con→,- ,}()int main NRTLNCOL ]Mat [int ;i )( NCOL81 NRMat ;, ,( )NRmot NCOL81 1 ;,- ,( )][ NRa)[8^-2 NCOL0& Mat ;,, 1-include# listadioc >.define 5N# (void init )[ [] diner intintmot di]int N int ;nme ,,,( diner( ]) [ dimeN*Void )intinit int int1 intp n ;,- , , )*Void ( dimrint intinit dime nintint2 p ; _tè,,- , { ][ oroin ':}int )main ( )[0a)[MImai"[[ [] NJTNint [ ]]N][ ] N U2N N MI ;m i, ,iv. i ;.mn.." "( )d8 &% ;numscan , i(init ) 'N Nm num ;, ,, i}( )fa iN<i ++i0 ;= ; juna}( )nSon 5=0 Sc ++; s; {)" [" ]dprintf [i ]%( ;ne t,y init dinerdime);"(printf " tu n} ( )iuitt N Nme num ;

Dettagli
Publisher
A.A. 2021-2022
14 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher kevinziroldi di informazioni apprese con la frequenza delle lezioni di Fondamenti di Informatica e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Politecnico di Milano o del prof Mirandola Raffaela.