Appunti Esame
Appunti Esame
Questo file è stato creato per avere qualcosa a portata di mano all’esame di fondamenti di
informatica (per aerospaziali). Non è assolutamente completo e ci sono quasi sicuramente delle
inesattezze o errori, ma in linea generale funziona. Se qualcuno volesse ulteriormente migliorarlo
lascio il codice LaTeX qua.
1 Varie
1.1 Troncare un float
Output: 0.23
1.2 Condizione if
if(1)
printf("Ciao!");
Output: Ciao!
if(0)
printf("Ciao!");
Output: ---
2 Vettori
2.1 Verifica vettori uguali
int flag = 1;
1
}
printf("Inserisci␣una␣sequenza␣di␣caratteri.␣Con␣#␣termini.␣");
do{
printf("Inserisci␣un␣carattere:␣");
scanf("%c", &valore);
getchar();
if(valore!=’#’)
v[i] = valore;
}while(valore != ’#’);
temp = v1[MAX-1];
for(i = MAX-1; i>0; i--){
v1[i] = v1[i-1];
}
v1[0] = temp;
2
for (i = 0; i < NUM-1; i++){
for (k = 0; k < NUM - 1 - i; k++){
if (v[k] < v[k + 1]){
temp = v[k];
v[k] = v[k + 1];
v[k + 1] = temp;
}
}
}
3
3 Matrici
3.1 Stampa matrice
Questo codice stampa una matrice r x c
4
4 Files
4.1 Apertura e lettura file
FILE *fp;
int n;
fclose(fp);
5
5 Liste dinamiche
5.1 Inserimento in testa
Ad ogni iterazione viene creato un chunk di tipo nodo ”temp” e vengono scambiati l’indirizzo di
testa e temp-¿next.
#include <stdio.h>
#include <stdlib.h>
int main(){
int ancora;
nodo *temp;
nodo *testa = NULL; //inizializzazione a 0
}
do{
temp = (nodo *)malloc(sizeof(nodo));
temp->next = testa;
testa = temp;
printf("Inserisci␣il␣valore");
scanf("%d", &(testa->val));
}while(ancora);
6
5.2 Inserimento in coda
Bisogna appoggiarsi ad una funzione secondaria.
#include <stdio.h>
#include <stdlib.h>
int main(){
//...
do{
if(!inscoda()){
printf("Memory␣Error.");
return 0;
}
}while(ancora)
int inscoda(){
prova *temp;
//caso 1: testa vuota
if(!testa){
if(testa=(nome*)malloc(sizeof(nome)){
printf e scanf valore;
testa -> next = 0;
return 1;
} else return 0; //caso in cui malloc fallisce
}
//caso 2: testa piena;
else {
//questo for mi cicla fino ad arrivare alla fine della lista;
for(temp = testa; temp -> next != 0; temp = temp -> next);
//arrivato alla fine creo un nuovo chunck e lo collego
if(temp->next = (nome*)malloc(sizeof(nome))){
temp -> next -> next = 0;
printf e scanf valore;
return 1;
} else return 0;
}
}
7
5.3 Ricerca elemento
In questo esempio è costruita una funzione che cerca un elemento in una lista e, se lo trova, ne
restituisce il puntatore.
//la funzione ritorna un puntatore a tipo lista;
nome* cerca(int valore){
nome * prova;
//scorro la lista con un for e impongo le condizioni
for(temp = testa; temp != 0 && temp -> dato != valore; temp = temp -> next);
return temp;
}
if(temp){
t1 -> next = temp -> next;
free(temp);
return 1;
}
else return 0;
}