Clasa a V-a lecția 7 - 16 oct 2012
From Algopedia
Jump to navigationJump to search
Introducere
- Anunț general: la cerința părinților se va înființa un al doilea cerc de informatică, paralel cu primul. Detalii:
- La acest cerc se va face exact aceeași materie ca și la primul, fiind supravegheat îndeaproape de mine (atenție la teme!)
- Cercul va fi ținut de doamna profesoară Isabela Coman, cu care am colaborat ani de zile la crearea acestui curs. Să o ascultați ca și pe mine!
- Copiii calificați pentru acest cerc vor fi anunțați de doamna profesoară și vor fi anunțați și pe acest site aici: copiii calificați pentru cercul 2 de informatică. Vă rog să-i anunțați și pe colegii voștri.
- Cercurile nu sînt închise. Pe viitor vom accepta noi copii care fac foarte bine la ore, vom transfera copii intre cele două cercuri în funcție de rezultate, sau vom renunța la cei ce nu-și dau silința.
- De acum înainte vreau teme de fiecare dată. Următorii copii nu prea aduceți temele: Deleanu Matei, Stanciu Vlad, Trifu Amelia.
Tema - verificare
- Nu am rezolvat tema ca să avem timp mai mult pentru lecția de C. Rezolvări aici [1]
Lecție
Limbajul C
- În informatică vorbim despre limbaje naturale și limbaje artificiale. Limbajele naturale sînt limbile lumii, cum ar fi limba română, sau limba engleză. Este ironic că ele sînt denumite "naturale", dacă ne gîndim că "artificial" este ceva creat de om ☺. Prin contrast, limbajele artificale sînt cele construite cu un scop, printre care și limbajele de programare. Un limbaj de programare este, precum limba română, o colecție de reguli (gramatică) și cuvinte (lexic) care împreună pot fi folosite pentru a construi programe (paragrafe). Programele au, ca și propozițiile în limba română, un înțeles (semantică). Ele au ca scop exprimarea unui algoritm ce se dorește a fi executat de calculator, spre deosebire de limba română unde scopul este comunicarea generală. Și limbajele de programare și schemele logice au ca scop descrierea algoritmilor. Dar, în vreme ce o schemă logică exprimă logica de bază a algoritmilor, limbajele de programare adaugă toate detaliile necesare pentru execuția algoritmului pe calculator.
- Limbajul C este un limbaj de programare dezvoltat de Brian Kernighan și Dennis Ritchie la Bell Labs în anii 1969-1973. În același timp cei doi au ajutat la dezvoltarea sistemului de operare UNIX, care se îmbina foarte bine cu acest limbaj.
- Un program simplu: Hello World (programul clasic pe care programatorii îl scriu atunci cînd învață un nou limbaj de programare):
#include <stdio.h> int main() { printf( "Hello world!\n" ); return 0; }
- Instrucțiunile scanf și printf sînt echivalentul blocului paralelogram în schemă logică. Exemplu: citirea a două numere și afișarea sumei lor:
#include <stdio.h> int main() { int a, b; printf( "Introduceti doua numere: " ); scanf( "%d%d", &a, &b ); printf( "Suma numerelor este %d\n", a + b ); return 0; }
- Despre părțile unui program C:
- Orice program C conține anumite elemente fixe, cum ar fi includerea bibliotecii standard de intrare/ieșire, începutul funcției principale (main) și finalul în care returnăm valoarea zero.
- Elementele variabile ale programului C, ceea ce vom folosi noi pentru a implementa schema logică, sînt formate din două secțiuni: cea de declarare a variabilelor și cea a programului propriu-zis, precum se vede în programul anterior.
- Instrucțiunea de atribuire (blocul dreptunghi)
- Este o instrucțiune de calcul
- Aproape identică cu conținutul blocului dreptunghi, în care săgețica ← se înlocuiește cu semnul egal =
- În partea stîngă a semnului egal se află întotdeauna o variabilă. În partea dreaptă se află fie o variabilă, fie o expresie matematică.
- Un exemplu: suma a două numere folosind o variabilă intermediară, de calcul:
#include <stdio.h> int main() { int a, b, c; printf( "Introduceti doua numere: " ); scanf( "%d%d", &a, &b ); c = a + b; printf( "Suma numerelor este %d\n", c ); return 0; }
- Exercițiu pe calculator: calcul expresie 24 / a + 100 / (c3 + b / (d2 + e2))
#include <stdio.h> int main() { int a, b, c, d, e, expr; scanf( "%d%d%d%d%d", &a, &b, &c, &d, &e ); expr = 24/a + 100 / (c * c * c + b / (d * d + e * e)); printf( "expresia este %d\n", expr ); return 0; }
Tema
- Instalați codeblocks de la olimpiada.info. Instalați OJI kit, care se găsește în chenarul portocaliu. Dezinstalați MinGW înainte de instalare, altfel s-ar putea să aveți probleme în recunoașterea compilatorului.
- Scrieți programe pentru următoarele scheme logice de pe site-ul algopedia:
- Lecția 2, suma numerelor de la 1 la n prin metoda lui Gauss, cu formula s = n (n + 1) / 2.
- Lecția 6, problema bomboane de la test.