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

Istruzione scanf()

Sintassi : scanf(<formato>,<arg1>,……,<argn>);

: come per

 <formato> printf()

: le variabili in cui si vogliono assegnare valori(i nomi delle variabili vanno

 <arg1>,…,<argn>

precedute dall’ operatore (NON si usa con le stringhe) che indica l’ indirizzo della variabile

&

Esempi

Int x;

float z;

scanf(“%d %f”,&x,&z);

Lo puo essere diviso per mettere una condizione sul primo carattere che si digita cosi o si invia solo

scanf()

il primo o una serie di caratteri il programma non va in errore

Esempio:

scanf(“%s”,Nome);

if(strcmp(Nome,”FINE”) != 0){

scanf(“_%c%d”,&Operazione,&Quantita);

} salta la lettura della stringa stesso vale per fscanf

scanf(“%*s %d”,&Dato) 7

Direttiva #include

Sintassi : #include <file>

puo essere specificato come :

 <file> per includere un file di sistema -Esempio:

o “<nomefile>” #include <studio.h>

per includere un file definito da me -Esempio :

o “”nomefile”” #include “studio.h”

Direttiva #define

Sintassi : (non ci va il “;”)

#define <constante> <valore>

: identificatore della constante simbolica convenzionalmente indicato tutto in

 <constante>

maiuscolo.

: un valore da assegnare alla constante

 <valore>

Esempi

#define PI 3.1415

#define N 10

Operatori aritmetici

Quattro operatori(per numeri Reali e Interi) : + - * /

Per i numeri interi esiste l operatore che torna il resto della divisione intera

%

Esempi

Int x = 5;

int y = 2;

int q , r;

q=x/y; //(q=2,troncato)

r=x%y; //(r=1)

Operatori di confronto in C

Uguale : a == b

Diverso : a != b

Maggiore : a > b

Minore : a < b

Maggiore o uguale : a >= b

Minore o uguale : a <= b

Operatori Logici

Operano su espressioni booleanee restituiscono un risultato booleano:

! NOT

&& AND

|| OR

Equivalgono agli operatori booleani di base

Operatore NOT

̅

A

Falso Falso

Vero Vero

Operatore AND

A B AxB

Falso Falso Falso

Falso Vero Falso

Vero Falso Falso

Vero Vero Vero

Operatore OR

A B A+B

Falso Falso Falso

Falso Vero Vero

Vero Falso Vero

Vero Vero Vero 8

Teorema di DeMorgan

̅∗

+ =

 ̅+

∗ =

Istruzione if

Sintassi : if(<Condizione>){

<Blocco1>}

Else{

<Blocco2>}

: espressione booleana

<Condizione>

: Sequenza di istruzioni

<Blocco1> : Sequenza di istruzioni

<Blocco2>

Significato : se e vera ,esegue le istruzini di altrimenti esegue quelle di

<Condizione> <Blocco1>,

<Blocco2>

Istruzione switch

Sintassi: switch (<espressione>){

case<constante1>:

<blocco1>

break;

case<constante2>:

<blocco2>

break;

default:

<blocco default>

} : Espressione a valore numerico.

<espressione> sequenza di istruzioni.

<blocco1>,<blocco2>, … :

Significato : in base al valore di esegui le istruzioni del corrispondenti nel caso in cui

case

<espressione>,

nessun venga intercettato, esegui le istruzioni corrispondente al

case case default.

Se si dimentica il i case vengono eseguiti in sequenza.

break

Istruzione while

Sintassi : while (<condizione>){

<blocco>

} : una condizione booleana

<condizione>

: sequenza di istruzioni

<blocco>

Significato : ripeti finche e vera.

<blocco> <condizione>

Istruzione do

Sintassi : do{ <blocco>}

While (<condizione>);

: una condizione booleana

<condizione>

: sequenza di istruzioni

<blocco>

Significato : ripeti finche è vera.

<blocco> <condizione> 9

Istruzione for

Sintassi : for(<inizializzazioni>;<condizione>;<incremento>){

<blocco>

} : le condizioni iniziali prima del ciclo

<inizializzazioni>

: una condizione booleana

<condizione> : incremento della variabile di conteggio

<incremento>

: sequenza di istruzioni

<blocco>

Vettore

Sintassi : <tipo> <nome vettore> [<dimensione>];

Accesso ad un elemento : <nome vettore> [<posizione>]

Esempio

Int v[10];

Definisce un insieme di 10 variabili intere: v[0],v[1],v[2],v[3],v[4],v[5],v[6],v[7],v[8],v[9];

Per dare un valore a tutto il vettore si può fare solo all’inizio Esempio 

: int lista[4] = {2,0,-1,5}

Scorrere un vettore : for(i=0;i<n;i++){

w[i]=v[i] //Copia W in V

}

Definizione di una funzione

Stabilire un “Nome” per un insieme di operazioni

Sintassi : <tipo risultato> <nome funzione> (<parametri formali>){

<istruzioni>

}

Se la funzione non ha risultato deve essere Per ritornare il controllo alla funzione

<tipo risultato> void

chiamante,nelle deve comparire una istruzione

<instruzioni>

 return <valore>; se non void

 return ; se void

come per le variabili le funzioni vanno dichiarate all’ inizio prima del loro uso si chiama PROTOTIPO nella

forma : <tipo> <nome> (<tipo parametro> <parametro passato>);

utilizzo funzione come normale istruzione : <variabile> = <nome funzione> (<parametri attuali>);

Esempio

Int mod(int v1,intv2); //prototipo

main(){

Int x,y,d;

scanf(“%d %d”,&x,&y);

d= mod(x,y); //utilizzo

Printf(“%d\n”,d);

}

Int mod(int v1,int v2){ //definizione

Int v;

if (v1 >= v2){

v=v1-v2;}

Else{

v=v2-v1;}

return v;

} 10

Passaggio di parametri per modificarli nella funzione (si usa &)

Esempio

void Swap(int *a,int *b);

main(){

Swap(&x,&y); //saranno invertiti !

}

void Swap(int *a,int *b){ //definizione funzione

int temp;

temp =*a;

*a=*b;

*b=temo;

return;

}

Passaggio di un vettore

Main{

Funzione (v,6);

}

Int Funzione(int v[],int dim){

Ricorda se il vettore viene modificato qui viene modificato pure nel main

Si pass pure la dimensione col vettore

}

Lettura e scrittura caratteri

Comando legge il carattere che viene digitato su console

getchar();

Esempio -testo = getchar();

Comando stampa carattere su schermo carattere e di tipo char

putchar(<carattere>)

Esempio -putchar(‘ciao’);

Stringhe

Stringa vuota ha sempre almeno il carattere che ne indica la fine

‘\0’

Scrittura stringhe sscanf(char*<stinga>,char*<formato>);

riceve sempre una stringa letta prima con per poter essere diviso nelle varie

sscanf() scanf(“%s”,string)

variabili o che siano

int float

Matrici

<tipo> <nome vettore> [<dim1>][<dim2>] … [<dimN>]

Scorrere una Matrice

for(i=0;i<N;i++){

for(j=0;j<M;j++){

Matrice[i][j]

}

}

Argomenti Sulla linea di comndo

main (int argc,char*argv[])

dove

 Numero di argomenti specificati(esiste almeno un agomento il nome del programma)

argc

 : vettore di stringhe

argv[] = primo argomento(Sempre Nome Programmma)

o argv[0] = generico argomento

o argv[1] = ultimo argomento

o argv[argc-1] 11

ESEMPIO

C:\>prog.exe 3 file.dat 3.2

perche abbiamo inserito 4 argomenti

argc=4

Argv[0] -> “prog.exe\0”

Argv[1] -> “3\0”

Argv[2] -> “file.dat\0”

Argv[3] -> “3.2\0”

Ricorda se devi ricevere un numero prestabilito di argomenti metti una condizione su ricordandoti che

argc

il primo è il nome e che ogni flag conta 1

Flag su linea di comndo

Si indicano con il trattino per distinguerle dall’ programma vero e proprio

-<carattere>

Esempio programma per identificare i flag

C:\> myprog –x –y file.txt //-x e –y sono due flags

For(i=1;i<argc;i++){

if(argv[i][0] == ‘-’){

Switch(argv[i][1]){

Case ‘x’ :

cosa fare se i flag è x;

break;

case ‘y’ :

cosa fare se il flag è y;

break;

default :

printf(“Flags inserito non esistnte”);

}

}

}

Tipi Aggregati(Strutture dati)

Raccoglie un insieme di variabili sotto in unico nome si definisce con :

Sintassi: typedef struct <nome struttura>{

<tipo campo> <nome campo>;

<tipo 2° campo> <nome 2° campo>;

}<nome breve struct>;

per dichiarare una variabile di tipo in un programma si usa il che e

struct “nome breve della struct”

breve quindi per dichiararla si usa 

: <nome breve della struct> <nome variabile di tipo struct>;

aggiungendo un alla fine di si puo creare un vettore di molto

[] “nome variabile di tipo struct” struct

utile se si lavora con diversi campi ad esempio un numero N di studenti di cui dobbiamo salvare nome

cognome e matricola

per accedere ad un determinato campo della struttura si una la sintassi : <variabile>.<campo>;

dove variabile e il nome che abbiamo dato alla nostra struct nel progrmma e campo e quello definito all

interno della struct.

ESEMPIO

Typedef struct strudente{

Char Nome[10];

Char Cognome[10];

}STUDENTE;

main(){

STUDENE Studente; //dichiarata la stuct Studente

Studente.Nome //per accedere al campo studente

} 12

Struct copiatura OK

E possibile copiare una scruct in un'altra quindi tutti i campi ma non confrontarle quindi per fare un

confronto si dovrà fare campo per campo.

Struct confronto NO

La struct puo essere passata come argomento in una funzione ed essere restituita come risultato

ricordando che se modifichi una struct all’ interno di una funzione si modifica pure nel main.

FILES

Noi lavoreremo con soli file di testo o per meglio dire .txt sostanzialmente di due tipi formattati e non

formattati :

Per utilizare i file si devono fare alcune operazioni base cioe :

dichiarare file con

 FILE *<nome variabile>;

aprire FILE con

 <nome variabile> = fopen(<nome del file.txt>,<modo>);

o modo “r” : lettura

o modo “w” : scrittura

o modo “a” : aggiudi in coda ad un file

 Elaborazione con i vari comandi;

Chiudere FILE con

 fclose(<nome variabile>);

e buona abitudine verificare l apertura corretta del file con il codice :

fp=fopen(&ld

Dettagli
A.A. 2015-2016
10 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher gianluca_palmeri di informazioni apprese con la frequenza delle lezioni 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 Torino o del prof Mezzalama Marco.