Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
Dichiarazione variabili
char = carattere
int = intero
float = reale
double = reale più grosso
long-int = intero più grosso
Ogni istruzione termina con un ;
Se più variabili condividono lo stesso tipo posso scrivere:
nomeint nome 1 2
Operazione di assegnamento
nome = 25 assegnare un valore a una variabile
→1 = nome assegnare a una variabile il contenuto di un'altra variabile
nome →1 2
nome = nome *5*10 assegnare con calcoli in mezzo
→1 2
Quando dichiariamo una variabile diciamo quanto spazio occupa in memoria
int op int = int
float op float = float
int op float = float
float op int = float
Scrivo un programma che chiede all'utente il raggio e restituisce perimetro e area del cerchio
Acquisire informazioni
scanf("%d", &a);
scanf("%d%d", &a, &b); se voglio acquisire 2 valori interi
%d int%c char%f, %g float
Se voglio far apparire a video
printf("benvenuto nel mio programma");
printf("il risultato è:
%f %f”, per, area);caratteri speciali\n = new line\t = tab
Chiedi un valore reale positivo e visualizza il valore intero arrotondato per difetto
Operazioni di cast per calcolare la media
gcc- Wall-std=c89-pedantic -o NOMEFILEESEGUIBILE NOMEFILESORGENTE
Wall segnala tutti I warning- →std=c89 controlla standard ANSI c89- →pedantic le violazioni degli standard vengono segnalate- →errori = non si produce l’eseguibile (problemi di sintassi)warning=viene creato un eseguibile (possibili problemi di semantica)
num = num +1; ++ num++; ++num;→num = num -1; -- num--; --num;
var op ; var op = ;→ris=ris/val; ris/=val;→tot=tot+cont; tot+=cont;
Il costrutto if
if(espressione){istruzione_V;}
if(espressione) ;istr_V1istr_V ;2 ;istr_V3
Scrivo un programma che, acquisito un valore, calcola e visualizza il suo valore assoluto
Acquisisce un valore intero, visualizza + se positivo, - se negativo e spazio se nullo
if(a==0) if(!a)↔if(val)if(val!=0)if
<istr_V;⌈else ⌋istr_F;while (espressione)istruzione V;>
<Programma che acquisisce 20 numeri interi e calcola e visualizza il valore massimo>
<while (espressione)istr;>
<do{ istruzione V;}while (espressione);>
<do{ istr1;istr2;} while (espressione);>
<Scrivo programma che chiede di inserire un valore strettamente positivo e finché non è tale lo richiede>
<Chiedo all'utente di inserire un valore intero strettamente positivo, che se non è tale viene richiesto, e poi calcola e visualizza il numero di cifre di cui è composto>
<Scrivo un programma che acquisisce un primo valore intero seguito da una sequenza di valori interi a priori di lunghezza ignota, che si ritiene terminata quando l'utente inserisce il numero fine>
<Il programma calcola e visualizza valore massimo, minimo e media dei valori>
<Nel caso in cui l'utente inserisca subito il valore fine si visualizza il numero fine come max, min e media>
<Array monodimensionali e costrutto for>
è la struttura dati che ci permette di definire la cardinalità dei dati, a cui assegno un nome che stabilisco conterrà un numero determinato di valori
Array è una variabile strutturata che contiene dati tra loro omogenei (tutti int o tutti float) in quantità costante e nota a priori
Ogni volta che abbiamo un array, abbiamo anche un indice
int float nome variabile [indice]
char int numeri [50]
numeri [i] metto tra parentesi il numero a cui voglio accedere
→Scrivo un programma che acquisisce 50 valori interi e visualizza i valori superiori al valore medio dei dati acquisiti
Iterazioni a conteggio
Bisogna ripetere un’attività per un numero di volte prefissato
Il costrutto for organizza
for ( ; ; )
1 tutte le istruzioni da eseguire prima di entrare nel ciclo i=0, tot=0→ →
2 condizione che esegue il ciclo i<NELEM→ →
3 istruzioni che sono di servizio a ripetere l’esercizio i++→ →
for (i=0;i<NELEM;1++)
if(num[i]>avg)printf(“%d\n”,
Scrivo un programma in C che acquisito un valore naturale che dev'essere compreso tra 1 e 1023 (estremi inclusi), e finché non è tale viene richiesto, calcola e visualizza la sua rappresentazione del sistema binario.
Legge di De Morgan:
C1 || C2 = !(!C1 && !C2) -> C1 && C2 = !(!C1 || !C2)
Scrivo un programma in C che acquisito un valore naturale che dev'essere compreso tra 1 e 1023 (estremi inclusi), e finché non è tale viene richiesto, calcola e visualizza la sua rappresentazione del sistema binario, utilizzando il numero massimo di bit previsti in relazione all'ampiezza dell'intervallo.
Acquisisci due valori tra 1 e 1023 e calcola e visualizza la loro rappresentazione in binario usando lo stesso numero di cifre per entrambi, che deve essere il minimo indispensabile.
#include <stdio.h>
#define MAX "1023"
#define MIN "1"
#define BASE "2"
#define NBIT "10"
int main (int argc, char *argv[]) {
// Codice del programma
return 0;
}
char* agrv[]){int a, b; int bin[NBIT], i; do{ scanf("%d", &a); }while (a<1||a>1023); i=NBIT-1; Array bidimensionali int mat[NRIGHE][NCOLONNE]; per passare attraverso tutta la tabella scrivo un ciclo for dentro l'altro for (i=0 ; iLa nascita di 50 persone e una ulteriore data, datarif: il programma calcola e visualizza il numero di persone che festeggiano il compleanno nello stesso giorno ed il numero di persone nate lo stesso giorno. Le stringhe scanf("%s", &seq[0]); printf("%s\n", &seq[0]); \0 carattere terminatore L'array avrà dimensione +1 La stringa è un array di caratteri &seq[0] seq &seq Per lo scanf lo spazio, la tab e l'invio indicano che la sequenza desiderata è terminata #include bisogna includere una nuova libreria Al posto di scanf uso l'istruzione gets gets(seq); gets(&seq[0]); Ex: frase.c I sottoprogrammi Programma che chiede all'utente un valore intero positivo, e da all'utente la possibilità di scegliere cosa fare con questo valore 1 = acquisire un valore 2 = stabilire se sia un numero primo 3 = calcolare il fattoriale 4 = stabilire se il valore sia palindromo 0 = terminaIl ruolo dei sottoprogrammi è quello di spostare una parte di operazione in un punto diverso che realizza la computazione che mi serve producendo il risultato richiesto. Il sottoprogramma è un programma che lavora su una ridotta attività rispetto a una visione più grande. Un sottoprogramma può non ricevere nessuna informazione in ingresso o ricevere una o più istruzioni. NB: nei temi d'esame è più probabile trovare 'scrivi un sottoprogramma' che 'scrivi un programma' ```html void menu() {
printf("-----\n");
printf("1. inserisci valore\n");/*codice*/ ...
return ...;
printf("0. termina \n");}
return ;
}
void = nessun tipo in particolare
return = interrompe la funzione ed eventualmente porta un valore restituendolo al chiamante
Scrivo un sottoprogramma che visualizza il menu, acquisisce la scelta dell'utente e finché non è
```compatibilela richiede, e restituisce la scelta fatta al chiamante scanf, gets, printf sono tre→sottoprogrammi che sono già staticreati per noi e ci danno un’idea sucome si chiamano i sottoprogrammi
Scrivere un sottoprogramma che ricevuto un valore intero in ingresso, calcola e restituisce 1 se primo, 0altrimenti
if (cond) if (cond) return 0; return 0; else return 1; return 1;#include
typedef/*prototipi*/
↓void menu ( ); int sceltamenu ( ); int primo (int); int main (int argc, char argv[]){ … }Il passaggio parametri
Scrivere un sottoprogramma che ricevuta in ingresso una stringa calcola e restituisce il numero di caratteriutilizzati
int lunghezzastringa (char s[]){ int dim; for(dim=0;s[dim]!=’\0’;dim++); return dim; }Scrivo un sottoprogramma che riceve in ingresso un array di valori interi, e qualsiasi altro parametro ritenutostrettamente necessario, e calcola e restituisce al chiamante l’indice dell’elemento con valore massimo; nelcaso ce
int maxarrayint (int v[], int dim){ int i, imax; imax=0; for (i=1;i<dim;i++) if(v[i]>v[imax]) imax=i; return imax; } void visualizzamat (int m[][NCOL], int nr, int nc){ int i, j; for (i=0;i<nr;i++) for(j=0;j<nc;j++) printf("%d", m[i][j]); printf("\n"); } int lunghezzastringa (char str[]){ int i = 0; while (str[i] != '\0') i++; return i; } int ultima_posizione (char str[], char c){ int i = 0; int pos = -1; while (str[i] != '\0'){ if (str[i] == c) pos = i; i++; } return pos; }
Formattazione del testo in ingresso una stringa ca