This shows you the differences between two versions of the page.
programare-cc:laboratoare:02 [2020/10/13 02:51] viorel.mocanu |
programare-cc:laboratoare:02 [2023/09/26 17:05] (current) mihai.nan |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | ===== Laboratorul 02. ===== | + | ===== Laborator 02 - Funcții de citire și scriere ===== |
+ | |||
+ | ==== Breviar ==== | ||
**În acest laborator veţi învăţa să:** | **În acest laborator veţi învăţa să:** | ||
Line 186: | Line 188: | ||
Mai găsiţi detalii şi pe: [[http://www.cplusplus.com/reference/cstdio/printf/]] | Mai găsiţi detalii şi pe: [[http://www.cplusplus.com/reference/cstdio/printf/]] | ||
- | ===== Problema 1 ===== | + | ==== Probleme propuse ==== |
+ | |||
+ | === Problema 1 === | ||
Problema generării unor numere aleatoare poate fi considerată iniţial una complicată, dar limbajul C ne pune la dispoziţie biblioteca **stdlib**, cu ajutorul căreia lucrurile vor deveni foarte simple. Funcţiile şi constantele acestei biblioteci sunt declarate în header-ul **stdlib.h** pe care va trebui să-l includeţi la începutul programului pe care îl scrieţi. | Problema generării unor numere aleatoare poate fi considerată iniţial una complicată, dar limbajul C ne pune la dispoziţie biblioteca **stdlib**, cu ajutorul căreia lucrurile vor deveni foarte simple. Funcţiile şi constantele acestei biblioteci sunt declarate în header-ul **stdlib.h** pe care va trebui să-l includeţi la începutul programului pe care îl scrieţi. | ||
Line 211: | Line 215: | ||
Schimbaţi valoarea seed şi rulaţi din nou. Ce observaţi ? | Schimbaţi valoarea seed şi rulaţi din nou. Ce observaţi ? | ||
- | ===== Problema 2 ===== | + | === Problema 2 === |
Scrieţi un program care citeşte şi apoi afişează 3 numere de tip **float** pe aceeaşi linie, separate prin câte un spaţiu, folosind, succesiv, descriptorii **%f**, **%e** şi **%g** pentru cele 3 valori. Folosiţi, pe rând, următoarele date de intrare: | Scrieţi un program care citeşte şi apoi afişează 3 numere de tip **float** pe aceeaşi linie, separate prin câte un spaţiu, folosind, succesiv, descriptorii **%f**, **%e** şi **%g** pentru cele 3 valori. Folosiţi, pe rând, următoarele date de intrare: | ||
Line 225: | Line 229: | ||
</note> | </note> | ||
- | ===== Problema 3 ===== | + | === Problema 3 === |
Programul următor afişează valorile funcţiei **sin(x)** pentru valori ale lui x între **0** şi **2*PI**, cu pasul **PI/10.** | Programul următor afişează valorile funcţiei **sin(x)** pentru valori ale lui x între **0** şi **2*PI**, cu pasul **PI/10.** | ||
Line 252: | Line 256: | ||
- | ===== Problema 4 ===== | + | === Problema 4 === |
Scrieţi un program care să determine cadranul în care se află un punct dat prin coordonatele sale reale. Se va afişa un număr între **1** şi **4** sau mesajul **punct pe axe**. | Scrieţi un program care să determine cadranul în care se află un punct dat prin coordonatele sale reale. Se va afişa un număr între **1** şi **4** sau mesajul **punct pe axe**. | ||
Line 276: | Line 280: | ||
| 0 0 | punct pe axe | | | 0 0 | punct pe axe | | ||
- | ===== Problema 5 ===== | + | === Problema 5 === |
Scrieţi un program care să verifice dacă 3 numere întregi date **a, b, c** pot forma lungimile laturilor unui triunghi. | Scrieţi un program care să verifice dacă 3 numere întregi date **a, b, c** pot forma lungimile laturilor unui triunghi. | ||
Line 303: | Line 307: | ||
| 6 6 0 | DA | | | 6 6 0 | DA | | ||
- | ===== Problema 6 ===== | + | === Problema 6 === |
Scrieţi un program care citeşte 3 numere reale reprezentând lungimile laturilor unui triunghi şi care afişează tipul de triunghi cu aceste laturi: //oarecare, isoscel, echilateral, dreptunghic sau dreptunghic isoscel//. | Scrieţi un program care citeşte 3 numere reale reprezentând lungimile laturilor unui triunghi şi care afişează tipul de triunghi cu aceste laturi: //oarecare, isoscel, echilateral, dreptunghic sau dreptunghic isoscel//. | ||
Line 325: | Line 329: | ||
---- | ---- | ||
^ Intrare ^ Ieşire ^ | ^ Intrare ^ Ieşire ^ | ||
- | | 10 10 1 | echilateral| | + | | 10 10 10 | echilateral| |
| 4 5 3 | dreptunghic| | | 4 5 3 | dreptunghic| | ||
| 5 10 10 | isoscel | | | 5 10 10 | isoscel | | ||
| 2.8284 2 2| dreptunghic isoscel| | | 2.8284 2 2| dreptunghic isoscel| | ||
- | ===== Problema 7 ===== | + | === Problema 7 === |
Scrieţi un program care determină minimul şi maximul dintre 4 numere, folosind doar instructiunea **if**. | Scrieţi un program care determină minimul şi maximul dintre 4 numere, folosind doar instructiunea **if**. | ||
Line 352: | Line 356: | ||
| 23 5321 331245 2000000000 | 23 2000000000| | | 23 5321 331245 2000000000 | 23 2000000000| | ||
- | ===== Problema 8 ===== | + | === Problema 8 === |
Afişaţi trei numere în ordine crescătoare, folosind doar instrucţiunea **if**. | Afişaţi trei numere în ordine crescătoare, folosind doar instrucţiunea **if**. | ||
Line 373: | Line 377: | ||
| 123109 2342 12 | 12 2342 123109 | | | 123109 2342 12 | 12 2342 123109 | | ||
- | ===== Problema 9 ===== | + | === Problema 9 === |
Scrieţi un program care citeşte trei numere întregi, **H, M şi S** reprezentând ora, minutul şi secunda dintr-un anumit moment al zilei, şi le afişează în format de ceas digital. | Scrieţi un program care citeşte trei numere întregi, **H, M şi S** reprezentând ora, minutul şi secunda dintr-un anumit moment al zilei, şi le afişează în format de ceas digital. | ||
Line 395: | Line 399: | ||
| 15 42 3 | 15:42:03 | | | 15 42 3 | 15:42:03 | | ||
- | ===== Problema 10 ===== | + | === Problema 10 === |
În programul anterior observaţi că dacă în loc de a introduce o valoare numerică tastaţi altceva (o literă, de exemplu) programul se va comporta anormal. Încercati să modificaţi programul astfel încat să aveţi protecţie la datele eronate. | În programul anterior observaţi că dacă în loc de a introduce o valoare numerică tastaţi altceva (o literă, de exemplu) programul se va comporta anormal. Încercati să modificaţi programul astfel încat să aveţi protecţie la datele eronate. | ||
Line 415: | Line 419: | ||
| 11 4.2 3 | Date incorect introduse! | | | 11 4.2 3 | Date incorect introduse! | | ||
- | ===== Problema 11 ===== | + | === Problema 11 === |
Scrieţi un program pentru rezolvarea ecuaţiei de gradul 2. | Scrieţi un program pentru rezolvarea ecuaţiei de gradul 2. | ||
Line 421: | Line 425: | ||
**Date de Intrare** | **Date de Intrare** | ||
---- | ---- | ||
- | Fişierul de intrare lab-02-11.in va conţine trei numere reale a, b, c ce reprezintă coeficienţii ecuaţiei de gradul 2 în ordine descrescătoare după puterile lui x. | + | Trei numere reale a, b, c ce reprezintă coeficienţii ecuaţiei de gradul 2 în ordine descrescătoare după puterile lui x. |
**Date de Ieşire** | **Date de Ieşire** | ||
---- | ---- | ||
- | În fişierul de ieşire lab-02-11.out se vor afla soluţiile reale ale ecuaţiei în ordine crescătoare, cu 2 zecimale. | + | Soluţiile reale ale ecuaţiei în ordine crescătoare, cu 2 zecimale. |
În caz că ecuaţia nu are soluţie se va afişa mesajul "Nu exista solutii". | În caz că ecuaţia nu are soluţie se va afişa mesajul "Nu exista solutii". | ||
În caz că ecuaţia are o infinitate de soluţii se va afişa mesajul "Infinit". | În caz că ecuaţia are o infinitate de soluţii se va afişa mesajul "Infinit". |