Differences

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

Link to this comparison view

sda-aa:laboratoare:01 [2021/03/01 21:30]
cristian.rusu
sda-aa:laboratoare:01 [2021/04/19 08:12] (current)
cristian.rusu
Line 11: Line 11:
  
  
-==== Windows ​====+Indiferent de sistemul de operare pe care il folositi (Windows/​Linux/​MacOS),​ va sugeram sa folositi Code Blocks (https://​www.codeblocks.org/​). ​
  
-==== Linux ==== 
  
-==== MacOS ====+===== 3. Un program foarte simplu, de test =====
  
 +Pentru a testa instrumentele instalate vom rula un program foarte simplu care are urmatoarele fisiere sursa.
 +
 +<code C my_math.h>​
 +#ifndef MY_MATH_H
 +#define MY_MATH_H
 + 
 +int sum(int a, int b);
 +int multiply(int a, int b);
 + 
 +#endif
 +</​code>​
 +
 +
 +
 +<code C my_math.c>​
 +#include "​my_math.h"​
 + 
 +int sum(int a, int b)
 +{
 +   ​return a + b;
 +}
 + 
 +int multiply(int a, int b)
 +{
 +   ​return a * b;
 +}
 +</​code>​
 +
 +
 +<code C main.c>
 +#include <​stdio.h>​
 +#include "​my_math.h"​
 + 
 +int main()
 +{
 +   int a = 10;
 +   int b = 20;
 + 
 +   ​printf("​a + b = %d\n", sum(a, b));
 +   ​printf("​a * b = %d\n", multiply(a, b));
 + 
 +   ​return 0;
 +}
 +</​code>​
 +
 +In linia de comanda Linux, pentru compilare in linia de comanda avem:
 +
 +<​code>​
 +gcc main.c my_math.c -o main
 +</​code>​
 +
 +
 +===== 4. Git si github =====
 +
 +Daca compilarea s-a realizat corect, e timpul sa folosim un sistem de version control si apoi sa incarcam codul pe github.com
 +
 +Intai, asigurati-va ca aveti instalat git (https://​git-scm.com/​downloads) si ca aveti un cont pe github.com. Daca lucrati de pe un Mac, git este deja instalat. Rulati comanda "git -- --version"​ pentru a verifica git-ul.
 +
 +Vom lucra cu git/github in timpul laboratorului iar pentru un tutorial mai detaliat de git verificati resursele suplimentare.
 +
 +
 +
 +===== 5. Exercitiu =====
 +Se da stuctura student: ​
 +
 +<code C>
 +struct student{
 +    char *nume, *prenume;
 +    char id[6]; ​  //id student
 +    double note[5]; // aici se salveaza notele obtinute in semestrul anterior
 +};
 +</​code>​
 +
 +Cerinte:
 +
 +1. In main, declarati un vector de student alocat dinamic. Populati-l cu date aleatoare (aveti un vector static de nume si prenume si faceti combinatii aleatorea asigurandu-va ca numele complet nu se repeta, asigurati-va ca id-ul generat este unic, generati note aleatoare).
 +
 +2. Scrieti o functie care scrie intr-un fisier studentii cu restanta astfel pe fiecare linie: id, nume, prenume, nr de restante
 +
 +3. Realizati o functie care sterge din vector toti studentii care au macar o restanta (realocand spatiul ocupat). Afisati vectorul rezultat.
 +
 +4. Realizati o functie care adauga in vector un student nou, pe o anumita pozitie (realocand spatiul ocupat). Afisati vectorul rezultat.
 +
 +5. Realizati o functie care modifica in vector un student (gasit dupa id) cu un alt student (generat aleator).
 +
 +
 +===== 6. Resurse suplimentare pentru lucrul cu pointeri =====
 +
 +Pentru un tutorial foarte detaliat despre lucru cu pointer va sugerez sa verificati Pointers in C / C++ [Full Course] (https://​www.youtube.com/​watch?​v=zuegQmMdy8M).
  
sda-aa/laboratoare/01.1614627010.txt.gz · Last modified: 2021/03/01 21:30 by cristian.rusu
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