Differences

This shows you the differences between two versions of the page.

Link to this comparison view

programare-cc:laboratoare:06 [2020/11/10 21:15]
bogdan.nutu
programare-cc:laboratoare:06 [2020/11/22 16:26] (current)
bogdan.nutu
Line 1: Line 1:
 ===== Laboratorul 06 - Funcții cu vectori ===== ===== Laboratorul 06 - Funcții cu vectori =====
  
-**În acest laborator veţi învăţa să:** +==== Problema 1 ====
- +
-  * Definiţi funcţii care primesc ca argumente vectori. +
- +
-==== Probleme ==== +
- +
-=== Problema 1 ===+
 ---- ----
  
Line 35: Line 29:
 | 6 \\ 10 -2 5 17 3 8     | -2 3 5 8 10 17 | | 6 \\ 10 -2 5 17 3 8     | -2 3 5 8 10 17 |
  
-=== Problema 2 ===+==== Problema 2 ====
 ---- ----
  
Line 70: Line 64:
 | 3.0 5.2 6.0 | 30.000 60.073 89.927 | | 3.0 5.2 6.0 | 30.000 60.073 89.927 |
  
-=== Problema 3 ===+==== Problema 3 ====
 ---- ----
  
Line 97: Line 91:
 | 6 \\ 4 1 5 1 7 10 \\ 4 \\ 1 10 3 4 | 4 \\ 4 1 1 10 | | 6 \\ 4 1 5 1 7 10 \\ 4 \\ 1 10 3 4 | 4 \\ 4 1 1 10 |
  
-=== Problema 4 ===+==== Problema 4 ====
 ---- ----
  
 Funcţie pentru compararea a doi vectori de caractere (doua siruri de caractere), echivalentă ca rezultat cu funcţia strcmp. Funcţia primeşte doi vectori de caractere (siruri) şi are un rezultat întreg (negativ - daca primul şir este mai mic, zero - dacă sunt egale sau pozitiv - dacă primul şir este mai mare). Program care verifică funcţia, pentru şiruri citite de la tastatură în doi vectori. Funcţie pentru compararea a doi vectori de caractere (doua siruri de caractere), echivalentă ca rezultat cu funcţia strcmp. Funcţia primeşte doi vectori de caractere (siruri) şi are un rezultat întreg (negativ - daca primul şir este mai mic, zero - dacă sunt egale sau pozitiv - dacă primul şir este mai mare). Program care verifică funcţia, pentru şiruri citite de la tastatură în doi vectori.
  
-<note tip>​Hint:​ Pentru a citi un vector de caractere, de exemplu char sir [100] folosiţi scanf("​%s",​ sir). Atentie! Orice sir de caractere se termina cu valoarea 0.</​note>​+<note tip>​Hint:​ Pentru a citi un vector de caractere, de exemplu char sir [100] folosiţi scanf("​%s",​ sir).</​note>​ 
 + 
 +<note important>​Atentie! Orice sir de caractere se termina cu valoarea 0.</​note>​
  
 == Date de intrare == == Date de intrare ==
Line 113: Line 109:
  
 In fisierul de iesire se va afisa una din urmatoarele valori : In fisierul de iesire se va afisa una din urmatoarele valori :
-1 - primul sir e mai mare +  * 1 - primul sir e mai mare 
-0 - cele doua siruri sunt egale +  ​* ​0 - cele doua siruri sunt egale 
--1 - al doilea sir e mai mare+  ​* ​-1 - al doilea sir e mai mare
  
 == Exemplu == == Exemplu ==
Line 123: Line 119:
 | abcd \\ aadf | 1 | | abcd \\ aadf | 1 |
 | abcd \\ abcd | 0 | | abcd \\ abcd | 0 |
-| bcde \\ azdgadf ​| -1 |+| bcde \\ zdg | -1 | 
 + 
 +==== Problema 5 ==== 
 +---- 
 + 
 +Să se scrie o funcţie care primeşte ca parametru un vector **v** şi o valoare **x** cu prototipul:​ 
 + 
 +<code c> 
 +void transform(int v[], int n, int x) 
 +</​code>​ 
 + 
 +Funcţia modifică vectorul **v** astfel încât elementele mai mici ca **x** se află la începutul vectorului şi elementele mai mari sau egale cu **x** la sfârşitul lui. 
 + 
 +== Date de intrare == 
 +---- 
 + 
 +Pe prima linie se gasesc 2 numere **n** si **x**. Pe a doua linie se regasesc **n** numere reprezentand elementele vectorului **v**. 
 + 
 +== Date de ieşire == 
 +---- 
 + 
 +Pe o linie se vor regasi elementele aranjate conform enuntului. 
 + 
 + 
 +== Exemplu == 
 +---- 
 + 
 +^ Intrare ​     ^ Ieşire ​      ^ 
 +| 10 5 \\ 7 2 8 1 3 9 7 5 6 1 | 1 2 3 1 8 9 7 5 6 7 | 
 +| 6 6 \\ 7 2 5 8 2 1 | 1 2 5 2 8 7 | 
 + 
 +==== Problema 6 ==== 
 +---- 
 + 
 +Să se scrie un program care citeşte o matrice **A(m x n)** şi copiază elementele matricei în spirală într-un vector **V**. Veţi folosi urmatoarele funcţii: 
 + 
 +<code c> 
 +void spirala (int A[][100], int m, int n, int V[]); // copiază elementele lui A în V, în spirală 
 +</​code>​ 
 + 
 +<code c> 
 +void afisare (int V[], int dim); // afişează un vector V, de dimensiune dim 
 +</​code>​ 
 + 
 +== Date de intrare == 
 +---- 
 + 
 +Pe prima linie se vor regasi 2 numere, **n** si **m** reprezentand numarul de linii si de coloane. Pe urmatoarele n linii se vor regasi m numere reprezentand elementele matricei. 
 + 
 +== Date de ieşire == 
 +---- 
 + 
 +Un sir de **n x m** numere reprezentand modul in care sunt parcurse elementele din matrice. 
 + 
 +== Exemplu == 
 +---- 
 + 
 +^ Intrare ​     ^ Ieşire ​      ^ 
 +| 3 4 \\ 1 2 3 4 \\ 5 6 7 8 \\ 9 10 11 12 | 1 5 9 10 11 12 8 4 3 2 6 7 | 
  
programare-cc/laboratoare/06.1605035708.txt.gz · Last modified: 2020/11/10 21:15 by bogdan.nutu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0