Anteprima
Vedrai una selezione di 4 pagine su 41
Appunti Completi del Corso "Informatica B" Pag. 1 Appunti Completi del Corso "Informatica B" Pag. 2
Anteprima di 4 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti Completi del Corso "Informatica B" Pag. 6
Anteprima di 4 pagg. su 41.
Scarica il documento per vederlo tutto.
Appunti Completi del Corso "Informatica B" Pag. 11
1 su 41
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

NOT (A AND NOT B) AND (NOT B OR C)

Trasformare i caratteri minuscoli in caratteri maiuscoli. Nel codice ASCII i valori maiuscoli vengono prima dei valori minuscoli, per questo per trasformarli basta fare "a - A", visto che questa è una differenza fissa.

Float: variabile di tipo numerica che individua un numero con la virgola.

Questi tre programmi danno lo stesso risultato?

No, perché il primo e il terzo fanno un semplice prodotto, invece il secondo calcola il fattoriale del numero a.

Quando un dato viene assegnato si è subito in grado di conoscere quanta memoria occuperà, per esempio un carattere occupa sempre 8 bit.

Classificazione dei tipi in C:

  • Predefiniti (possono essere solo semplici) Variabile intera
  • Definiti dall'utente, possono essere:
    • Semplici Variabile di tipo carattere
    • Strutturati (complessi) Variabile di un numero con la virgola

Ne esistono di tre tipi:

  • [signed/unsigned] int - Signed vuol dire che il numero ha il segno
  • Unsigned vuol dire che il numero non ha il segno

dire che il numero è privo del segno- [signed/unsigned] short [int]- [signed/unsigned] long [int]La differenza tra int, short e long sta nello spazio allocato: ovviamente short occupa meno memoria, mentre long ne occupa di più.- Short di solito occupa 16 bit- Int ne occupa 16 o 32- Long tra 32 e 64 sp short sp int sp long 16- Se abbiamo 16 bit di spazio, e siamo nella modalità unsigned si possono rappresentare valori tra 0 e 2^16-1. Se invece siamo nella modalità signed si possono rappresentare valori tra -2^15 e 2^15-1.Le costanti INT_MIN e INT_MAX definiscono i valori minimo e massimo rappresentabili da un int.Per utilizzarle bisogna aggiungere la libreria <limits.h> z = a%bNelle operazioni il % è il simbolo che ci dà il resto di una divisione

void main(){ unsigned int a; int b; short c; long d;a = -10; numeri signedprintf("a = %d uso lo specificatore d\n", a);printf("a = %u uso lo specificatore u\n", a);b = 32766;

numeri unsigned
printf("b = %d\n", b);
c = b + b; valori short
printf("c = % hd\n", c);
d = b + b;
printf("d = %ld\n", d); valori long
b = b + b;
printf("Nuovo valore di b: %d\n", b);
d = 2147483650; Overflow
printf("Nuovo valore di d: %ld\n", d);

Sono rappresentabili in 8 bit

È possibile fare le stesse operazioni che con i numeri

Andare a capo

Spostare il cursore verso destra sulla stessa riga (un po' come il tab)

Stampa solo il carattere

Stampa il codice ascii del carattere -3838

Occupa 4 byte. Ha una precisione di 6 cifre decimali e può rappresentare valori compresi tra 10 e 10 -308

308Occupa 8 byte. Ha una precisione di 15 cifre decimali e può rappresentare valori compresi tra 10 e 10 -4932

4932Occupa 16 byte. Ha una precisione di 34 cifre decimali e può rappresentare valori compresi tra 10 e 10

sp float sp double sp long double

Le divisioni coi reali sono diverse da quelle con gli interi:

Non esiste il perché

non ha senso fare il resto di una divisione non di numeri interi.

C'è un'altra libreria che comprende altre operazioni che si possono effettuare con i numeri reali:

  • Stampa con virgola fissa
  • Stampa con virgola mobile (cioè in notazione scientifica)
  • Indica il numero di cifre dopo la virgola

Per esempio se devo fare operazioni tra variabili eterogenee, cioè di tipo diverso, l'operando di tipo inferiore viene temporaneamente convertito al tipo superiore.

int long unsigned unsigned long float double long double

lunedì, martedì, mercoledì, giovedì, venerdì, sabato, domenica giorni Settimana S; nome tipo

Ad ogni valore viene associato un valore numerico: nome di variabile

lunedì, martedì, mercoledì, giovedì, venerdì, sabato, domenica

False, True

Può avere due valori: Vero o Falso.

Ci sono due modi per assegnare una costante:

const double PiGreco = 3.14

const <nome tipo> <nome>

costante> = <valore> #define PiGreco 3.14 #define <nome costante> <valore> - Array Sono ottenuti dall'aggregazione di altri dati - Struct Possono contenere più informazioni, ma devono essere tutte dello stesso tipo Acquisizione degli elementi nell'array Quando usciamo dal ciclo, i vale MAX_NUM. Quindi dopo nella stampa dobbiamo Stampa in decrementare i di 1, poiché l'ultimo spazio nella ordine inverso sequenza corrisponde a MAX_ NUM - 1. Va a cercare il terzo elemento della sequenza, e Modo per accedere agli elementi della sequenza gli attribuisce il valore 14 Ci sono due modi per dichiarare un'array - dichiarare prima il tipo di variabile e poi le variabili di quel tipo - dichiarare direttamente le variabili In questo caso devo scrivere ogni volta di che tipo di variabile si tratta È inoltre possibile creare un'array dentro un'altra array È un ciclo, ma differente dal while. Istruzione che deve essere eseguita prima diutilizzano i tag html per formattare il testo:

usa in abbinamento con le array. entrare nel ciclo la prima volta

Condizione

Istruzione che deve essere eseguita alla fine di ogni ciclo

L'operatore di assegnamento (=) non è definito per gli array, cioè non si può imporre ad una array di essere uguale ad un'altra array, ma va fatto elemento per elemento.

Sequenze di caratteri rappresentate mediante array di caratteri

Con un singolo comando si è in grado di acquisire tutta la serie di caratteri

Terminatore di stringa: Non si mette il & perché str non contiene i valori precisi, Lo mette automaticamente la scanf ma contiene l'indirizzo per la prima cella dell'array. Permette di conoscere i caratteri

Per esempio voglio trovare le sottosequenze "ab", "ae" presenti all'interno di una stringa e "ai" all'interno della stringa

Sono come degli array, ma a due dimensioni

Di fatto sono array di array

Indici di colonna

Grazie agli indici di riga e di colonna si

Riesce ad individuare il valore corretto

Indici diriga Numero d righe Numero di colonne

Accedere agli elementi della matrice:

  • Assegnamento di un valore a tutti gli elementi della matrice
  • Assegnamento di un valore agli elementi di una colonna
  • Ciclo innestato: ciclo dentro un altro ciclo

Solo se le matrici sono dello stesso tipo

La somma equivale alla somma dei singoli elementi in quella posizione

Solo se il numero di colonne della prima matrice è uguale al numero di righe della seconda matrice.

Numero di colonne della prima e delle righe della seconda.

La matrice risultante ha lo stesso numero di righe della prima matrice, e lo stesso numero di colonne della seconda matrice:

float a[N][M]
float b[M][L]
float c[N][L]
c[1][2] = 0
for (k=0; k<M; k++)
    c[1][2] = c[1][2] + (a[1][k]*b[k][2])

Possono contenere più informazioni, anche di diverso tipo a differenza delle array.

Definizione di struct:

Dichiarazione di variabili:

Per accedere ad ogni campo della struct si usa la notazione punto

Per le

stringhe non è necessario il "&" nella scanf.

Programma che acquisisce due numeri complessi e ne fa la somma e il prodotto.

In C non esiste una variabile apposta per i numeri complessi, quindi posso usare sia gli array che le struct

0 = parte reale

1 = parte immaginaria

StructArray

A differenza degli array, con le struct posso utilizzare l'operatore di assegnamento

typedef int array[10]

typedef struct {

    double Re;

    double Im;

} complesso;

x2 = x1

complesso s1, s2;

s2 = s1

Non è invece possibile usare gli operatori di confronto ==, !=, > e < per le struct, ma bisogna farlo per ogni campo della struct.

Si possono fare varie combinazioni, per esempio array di struct, struct di array, struct di array di struct, ecc.

Programma che acquisisce rilievi altimetrici costituiti da latitudine, longitudine e altitudine, e poi stampa solo

quellicon longitudine pari È un'arrayPermette di accedere all'elemento [...] contenuto nell'archivio(arch) a(Tema d'esame luglio 2018) ( MATrix LABoratory )

In MatLab anche i numeri interi in realtà sono delle matrici 1x1

Tutto è un'array in MatLab:

  • i numeri interi in realtà sono matrici 1x1
  • un'array con una sola riga, o una sola colonna è detto vettore
  • ci sono le vere e proprie matrici
  • gli array con più di due dimensioni si chiamano: matrici multidimensionali

In MatLab quindi si possono anche fare prodotti tra matrici in modo molto semplice:

MatLab è un linguaggio interpretato, a differenza del C che invece è compilato, cioè bisogna prima completarlo tutto, perché vienetradotto solo dopo da un compilatore; in MatLab invece il programma è tradotto simultaneamente da un interprete.

In MatLab non bisogna dichiarare le variabili

Il tipo delle variabili è dinamico, cioè

può cambiare, ad una variabile si possono assegnare successivamente diversi tipi di valori. MatLab accetta comandi che seguono il "prompt": >>

Se si scrive "whos (variabile)", il programma mostra tutte le informazioni di quella variabile.

Se si scrive invece solo "who (variabile)", il programma mostra chi è quella variabile.

Nelle divisioni il risultato è con la virgola, questo perché MatLab non fa una divisione intera di default.

"eps" (che sta per ξ) indica la più piccola grandezza rappresentabile.

"real" restituisce la parte reale di un numero complesso, "imag" quella immaginaria.

"==" è l'uguale, "~=" è il diverso.

Per definire una matrice si scrive: a=[1 2; 3 4], dove ";" separa le righe.

Un vettore contiene più valori, per esempio: x=[-1.3 sqrt(3) (1+2)/5] (basta che siano separati almeno da uno spazio, non serve la ,).

Però se

si scrive x(5) = abs(x(1)) vuol dire che si vuole ingrandire il valore del vettore da 3 a 5, quindi al quarto elemento si da valore 0, al quinto il valore assoluto del primo valore. Se si scrive b = a' si ottiene una matrice girata rispetto alla matrice a, cioè si scambiano le righe e le colonne. Per la somma basta fare: c = a + b. Il ";" blocca l'output, cioè blocca la visualizzazione del valore delle variabili nell'istruzione. Per creare un array vuoto si scrive: a = []. I ":" creano un vettore di numeri, per esempio se si scrive x = 1:5 vengono scritti tutti i numeri compresi tra 1 e 5, estremi inclusi. Se invece si scrive x = 1:0.5:5 il vettore di numeri non è più solo di naturali, ma parte da 1 e arriva a 5 con un passo di incremento di 0,5.
Dettagli
Publisher
A.A. 2022-2023
41 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher F3D3R1C0_99 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 Milano o del prof Di Nitto Elisabetta.