Anteprima
Vedrai una selezione di 10 pagine su 68
Appunti completi con esercizi Pag. 1 Appunti completi con esercizi Pag. 2
Anteprima di 10 pagg. su 68.
Scarica il documento per vederlo tutto.
Appunti completi con esercizi Pag. 6
Anteprima di 10 pagg. su 68.
Scarica il documento per vederlo tutto.
Appunti completi con esercizi Pag. 11
Anteprima di 10 pagg. su 68.
Scarica il documento per vederlo tutto.
Appunti completi con esercizi Pag. 16
Anteprima di 10 pagg. su 68.
Scarica il documento per vederlo tutto.
Appunti completi con esercizi Pag. 21
Anteprima di 10 pagg. su 68.
Scarica il documento per vederlo tutto.
Appunti completi con esercizi Pag. 26
Anteprima di 10 pagg. su 68.
Scarica il documento per vederlo tutto.
Appunti completi con esercizi Pag. 31
Anteprima di 10 pagg. su 68.
Scarica il documento per vederlo tutto.
Appunti completi con esercizi Pag. 36
Anteprima di 10 pagg. su 68.
Scarica il documento per vederlo tutto.
Appunti completi con esercizi Pag. 41
1 su 68
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

Informatica

Informatica: scienza che studia

  • rappresentazione
  • elaborazione (automatica)

di informazioni.

Da fatti/conceitto interpretato e elaborato da un essere umano o da uno strumento automatico.

Elabo Automatica

  • Insieme di regole (procedimenti, programmi)

macchina automatica.

  • da un insieme di informazioni iniziali esegue le regole per ottenere un'insieme di info finali.

Es. Calcolo dell'area di un rettangolo

Area = b · h

Algoritmo

  • procedimento, insieme di regole

procedimento matematico per la soluzione di un problema.

  • l'algoritmo è una sequenza finita di azioni (passi di elaborazione) che risolve in modo automatico un problema.

Algoritmi Deterministici

y = f(x)

Come si rappresenta un algoritmo:

Area = b · h è un algoritmo

Linguaggio

di descrizione degli algoritmi:

  • deve essere capito dalla macchina che lo esegue.

Modello di Von Neumann del 1945

Schema funzionamento unità centrale

  • FETCH ⇒ reperire istruzione prox in memoria
  • DECODE ⇒ capire cosa significa l'operazione
  • EXECUTE ⇒ esecuzione dei passi necessari per l'operazione

La terna di operazioni: è un ciclo che dura finché il PC è acceso.

Linguaggio dei diagrammi di flusso

  • descrivere degli algoritmi
  • operazioni di Input/Output
  • operazione logico-aritmetiche di elaborazione
  • operazione di selezione

Problema

Dati 2 numeri interi a e b, calcolarne il max.

  1. acquisire valori di a e b
  2. Se a > b il max è a
  3. Se a < b il max è b

8 bit → 1 byte 0 → 255

16 bit → 2 byte 0 → 65536

32 bit → 4 byte | word, 8 byte 0 → 109

64 bit → 8 byte 0 → 18 * 1018

Es

1 2 3 4 5

0_2345 * 103

Memoria

nm4 bytei 000001max 000101max ← nm

Codifica ASCII

97 → 'a'

122 → 'z'

Problema

Dato un valore n e una sequenza di lunghezza n di numeri interi: calcolare il minimo

Autore: Lorenzo

Titolo: MCD tra due numeri

Data: 17/01/2009

Scopo: Confrontare due tipi di algoritmi che

#include<stdio.h> #include<conio.h> #include<math.h> int main() { long n,m,t; clrscr(); printf("Inserisci il primo numero:\n"); scanf("%ld",&n); printf("Inserisci il secondo numero:\n"); scanf("%ld",&m); if(n < m) t=n; else t=m; while (((n % t) !=0) || ((m % t) != 0)) t=t-1; printf("Il MCD è il numero %ld", t); getch(); }

Conclusione: per calcolare l'MCD tra i numeri 123456789 e 987654321 vengono impiegati 42 secondi

#include<stdio.h> #include<conio.h> int main () { double n,m; clrscr(); printf("Inserisci il primo numero:\n"); scanf("%lf",&n); printf("Inserisci il secondo numero:\n"); scanf("%lf",&m); while (n!=m){ if (n>m) n=n-m; else m=m-n; } printf("Il MCD è: %lf ", n); getch(); } Conclusione: per calcolare l'MCD tra i numeri 123456789 e 987654321 viene impiegata una frazione di secondo

#include <stdio.h>

int main

int i,n,k;

printf("Inserisci un numero tra 1 e 9: \n");

scanf ("%d", &n);

printf ("\n");

for (i=1; i<=n; i++)

{

//ciclo FOR per stampare un spazio in meno ogni riga (dall’alto)

for (k=n; k>i; k--)

printf (" ");

//Stampa i numeri da 1 a n

for (k=1; k<=i; k++)

printf ("%d", k);

//Stampa i numeri da n a 1

for (k=i; k>0; k--)

printf ("%d", k);

printf ("\n");

}

return 0;

}

/*Autore: Lorenzon Luca

Data: 30/01/2004

Titolo: Programma che calcola, mediante l'utilizzo di una funzione,

il fattoriale del numero dato in input

*/

#include <stdio.h>

/*Dichiarazione funzione*/

long Fattoriale(int n);

int main()

{

int num;

long f;

printf("Immetti un numero: ");

scanf("%d", &num);

/*Richiamo funzione*/

f=Fattoriale(num);

/*Stampa del fattoriale*/

printf("%d! = %d", num, f);

return 0;

}

/*FUNZIONE*/

long Fattoriale(int n)

{

long fatt=1, i;

for (i=2;i<=n;i++)

fatt*=i;

return fatt;

}

/*Autore: Lorenzon Luca

Data: 30/01/2004

Titolo: Programma che calcola, la radice quadrata

del numero dato in input

*/

#include <stdio.h>

/*Si definisce la precisione del numero dato in output*/

#define esp 0.001

int main ()

{

float n, n1, n2=1.0;

printf ("Immetti un numero: ");

scanf ("%g", &n);

n1=n;

/*Ciclo che segue l'algoritmo risolutivo*/

while ((n2-n1)>=esp || (n1-n2)>=esp)

{

n1=(n1+n2)/2.0;

n2=n/n1;

}

printf ("La radice quadrata di %g è %f", n, n1);

return 0;

}

#include <stdlib.h>

#include <time.h>

int rand ();

int srand (int seed);

int main ()

{

  srand (time ((;0)));

}

int Bisestile (int   ąnn0)

{

  return ( — — )

}

void P();

Procedura = funzione che non ritorna alcun valore.

void Stampa Fattoriale (int b)

{

  printf (";%ld/d/n", Fatturizio (n));

  return;

}

- PUNTATORI -

l'indirizzi di memoria che corrispondono all'indirizzo di memoria di una data variabile,

void g (int*c a)

{

   * a =*a + 5   // vai all'indirizzo delle var. a.

}

vo&iciec;d int main ()

{

   int n = 3 ;

   g (&n); // richiamo le var. puntate

   return 0;

}

Esercizio

Data una sequenza di interi di lunghezza n letta in input n <= 1000, stampa la sequenza invertita. Es: 5 23 3 -> 3 23 5

#include <stdio.h> #define N 1000 int main () { int v[N]; int n, i; printf("inserire la lunghezza della sequenza (max %d)\n", n); scanf("%d", &n); while (n>N){ <---corrett³ for (i=0; i<n; i++); scanf("%d", &v[i]); for (i=n-1; i >= 0; i--); printf("%d", v[i]); return 0; }

Problema

Data una sequenza di interi n letta in input e n <= 1000, calcolare il vicino della media.

#include <stdio.h> #include <math.h> #define N 1000 int main () { int V[N], h, ci somma, vicino; float media, min_distan; somma = 0; for (i=0; i<n; i++) { somma += V[i]; } media= (float) somma/n; min_distan = fabs(V[i] – media); vicino = 0; for (i=0; i<n; i++) { if (Abs(V[i] - media) < min_distan){ min_distan = fabs(V[i] - media); vicino = i; } printf ("Il vicino alla media %d", vicino}); return 0; } }

void Datasucc(int *p_giorno, int *p_mese, int *p_anno)

{

if (*p_giorno=giorni_del_mese(*p_mese, *p_anno)

*p_giorno);

else if (*p_mese=12)

*p_giorno=1;

*p_mese=1;

else

*p_giorno=1;

*p_mese=1;

}

int contagiorni (int giorno1, int mese1, int anno1

int giorno2, int mese2, int anno2)

{

int conta_giorni=0;

while (giorno1!=giorno2 || mese1!=mese2 || anno1!=anno2)

{

Datasucc (&giorno1, &mese1, &anno1);

conta_giorni++;

}

return conta_giorni;

}

Dettagli
Publisher
A.A. 2017-2018
68 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher luca.lorenzon di informazioni apprese con la frequenza delle lezioni di Informatica 1 e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Udine o del prof Montessoro Pier Luca.