Esercizi (semplici algoritmi)

Похожие документы
Scuola Secondaria di I Gr. Ugo Foscolo Torino

CALCOLO COMBINATORIO. Psicometria 1 - Lezione 5 Lucidi presentati a lezione AA 2000/2001 dott. Corrado Caudek

Autore dell esperienza CONTEROSITO Salvatore LICEO ARTISTICO STATALE "FELICE CASORATI" DI NOVARA

La probabilità. Calcolo combinatorio ed elementi di probabilità

Kangourou Italia Gara del 17 marzo 2016 Categoria Ecolier Per studenti di quarta o quinta della scuola primaria

Alcuni esercizi. 1. Valutazione in cortocircuito 2. If e if innestati 3. Switch 4. Cicli

2 Operatori matematici e costrutto if

I files in C. A cura del prof. Ghezzi

Laboratorio di informatica Ingegneria meccanica

Un esempio per iniziare. Il controllo del programma in C. Altri cenni su printf() Esercizi (printf) printf( 8!=%d, fatt);

RELAZIONE DELLA PROVA DI LABORATORIO DI INFORMATICA

Lezione 6 Selection/Insertion Sort su interi e stringhe

Il teorema di ricorrenza di Poincare, il modello di Ehrenfest ed il principio di Indeterminazione di Heisenberg.

Qualsiasi programma in C++ segue lo schema:

Preparazione allo Scritto di Programmazione

Algoritmi di ordinamento: Array e ricorsione

Fondamenti di Informatica T-1 Modulo 2

Lab 04 Istruzioni, cicli e array"

Fondamenti di Informatica T-1 Modulo 2

Laboratorio di Architettura degli Elaboratori A.A. 2014/15 Programmazione Assembly

Programmazione I - Laboratorio

Politecnico di Torino Sede di Alessandria Corso di informatica Programmazione in c: introduzione. e mail: sito: users.iol.

Fondamenti di Informatica

Lezione 8: Stringhe ed array multidimensionali

IL PRIMO PROGRAMMA IN C

Esercitazione 6. Array

ESECUZIONE DI PROGRAMMI C SU MACCHINE REALI. Docente: Giorgio Giacinto AA 2008/2009. formalizzazione degli algoritmi in linguaggio C

Ogni parte non cancellata a penna sarà considerata parte integrante della soluzione.

Verificare se un albero binario è bilanciato

Informatica (A-K) 5. Algoritmi e pseudocodifica

Olimpiadi Italiane di Informatica. Selezione Territoriale 14 Aprile Testi e soluzioni ufficiali dei problemi

Funzioni con numero variabile di parametri: Funzioni Variadiche in C. Massimo Benerecetti Laboratorio di Algoritmi e Strutture Dati

Terzo allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

PROGRAMMA = ALGORITMO

Quarto allenamento. Olimpiadi Italiane di Informatica - Selezione territoriale

Fondamenti di Informatica 6. Algoritmi e pseudocodifica

INFORMATICA. Strutture iterative

Primo programma in C

Gestione dei files. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132

Транскрипт:

Esercizi (semplici algoritmi) CORDA Informatica A. Ferrari

Problema delle 12 monete Abbiamo 12 monete che sembrano identiche ma non lo sono. Una di esse ha un peso diverso dalle altre ma non sappiamo qual è e neppure se è più pesante o più leggera delle altre. Dobbiamo scoprire qual è la moneta di peso diverso, con 3 pesate comparative utilizzando una bilancia a due piatti.

Algoritmo delle 12 monete

Esercizio 1 Scrivere un programma che implementa l algoritmo presentato per risolvere il problema delle 12 monete Scrivere una seconda versione dell algoritmo in cui si pesano solamente 2 monete per volta

Esercizio 2 Scrivere un programma in linguaggio C che stampi tutte le permutazioni ottenibili combinando le 4 lettere A, B, C, D. Segue un possibile output atteso del programma. ABCD BACD CABD DABC ABDC BADC CADB DACB ACBD BCAD CBAD DBAC ACDB BCDA CBDA DBCA ADBC BDAC CDAB DCAB ADCB BDCA CDBA DCBA

Esercizio da Olimpiadi Informatica (Lo struzzo Simone) Lo struzzo Simone si sposta solo nelle direzioni dei quattro assi cardinali (Nord, Sud, Est, Ovest). Ogni suo passo misura 1 metro. Dovete scrivere un programma che, data una sequenza di spostamenti di Simone, misuri quant'è la distanza fra il punto di partenza e il punto di arrivo Dati di input Il file input.txt contiene la sequenza degli spostamenti. Tale file è costituito da un'unica riga di testo, contenente una sequenza di S, N, E, O (che indicano gli spostamenti nelle direzioni Sud, Nord, Est, Ovest rispettivamente). La sequenza è terminata da un *. Ad esempio, il file di input NNESO* dice che Simone si sposta di due metri a Nord, poi di un metro verso Est, poi di un metro verso Sud, e quindi di un metro a Ovest. Dati di output Il file output.txt deve contenere un'unica riga. Su questa riga dovrà comparire il numero intero corrispondente al quadrato della distanza.

Lo struzzo Simone (2) File input.txt File output.txt NNSEEESNOENNS* 13 NNESOS* 0 OSOS* 4 Assunzioni Il numero complessivo di spostamenti contenuti nel file di input è minore o uguale a 100000. L'esecuzione del programma deve terminare entro 5 secondi.

Input output #include <stdio.h> int main() { FILE *fin = fopen("input.txt", "r"); FILE *fout = fopen("output.txt", "w"); char input[100000]; fscanf(fin, "%s", input); while (input[i]!= '*') { } } fprintf(fout, "%d",.); fclose(fin); fclose(fout); return 0;

Lo struzzo Simone (3) #include <stdio.h> int main() { FILE *fin = fopen("input.txt", "r"); FILE *fout = fopen("output.txt", "w"); char input[100000]; int i = 0, ns = 0, eo = 0; fscanf(fin, "%s", input); while (input[i]!= '*') { switch (input[i]) { case 'N': ns++; break; case 'S': ns--; break; case 'E': eo++; break; case 'O': eo--; break; } i++; } fprintf(fout, "%d", ns*ns + eo*eo); fclose(fin); fclose(fout); return 0; }

Esercizio da Olimpiadi Informatica (La biblioteca degli smemorati ) Descrizione del problema La vostra biblioteca rionale ha qualche problema nello stabilire da quanto tempo gli utenti tengono i libri. Dovete aiutarli scrivendo un programma che, prese in input due date del 2015, stabilisca quanti giorni intercorrono tra le due date. Dati di input Il file input.txt è formato da una riga che contiene la data iniziale e la data finale del prestito. Più precisamente, la riga contiene quattro interi: la prima coppia specifica la data iniziale, la seconda la data finale. Ogni data è formata da due numeri, e cioè il giorno del mese e il numero del mese. Dati di output Il file output.txt deve contenere un'unica riga. Su questa riga dovrà comparire il numero intero corrispondente ai giorni che intercorrono tra le due date in input.

La biblioteca degli smemorati (2) Assunzioni La seconda data non precede mai la prima. Il numero di giorni considerato non comprende quello iniziale: quindi, ad esempio, tra il 2 gennaio e il 2 gennaio intercorrono 0 giorni, tra il 30 gennaio e il 2 febbraio intercorrono tre giorni, e così via. L'esecuzione del programma deve terminare entro 5 secondi. File input.txt File output.txt 2 3 2 3 0 30 1 2 2 3 1 5 2 7 62