Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 9

Material training

ANSI C
&
CANoe
Table of Contents

Table of Contents ...................................................................................................................................... 2


1 ANSI C ................................................................................................................................................ 3
1.1 Documentatie ............................................................................................................................... 3
1.2 Exemple & Exercitii ....................................................................................................................... 4
1.2.1 Siruri .......................................................................................................................................... 5
1.2.2 Matrici ....................................................................................................................................... 6
1.2.3 Structuri .................................................................................................................................... 6
1.2.4 Functii ........................................................................................................................................ 7
1.2.5 Operatii cu biti........................................................................................................................... 8
2 CANoe ................................................................................................ Error! Bookmark not defined.
2.1 Download CANoe demo ................................................................. Error! Bookmark not defined.
2.2 Instalare aplicatie ........................................................................... Error! Bookmark not defined.
2.3 Training CANoe .......................................................................... Error! Bookmark not defined.
2.4 Problema .................................................................................... Error! Bookmark not defined.

2
1 ANSI C

1.1 Documentatie

Recomandare suport training: C Programming Language (Brian W. Kernighan, Dennis M. Ritchie)

https://hassanolity.files.wordpress.com/2013/11/the_c_programming_language_2.pdf

Capitole de studiat:

 CHAPTER 1 A Tutorial Introduction


 CHAPTER 2 Types, Operators, and Expressions – the entire chapter
 CHAPTER 3 Control Flow– the entire chapter
 CHAPTER 4 Functions and Program Structure
o 4.1 Basics of Function
o 4.2 Functions Returning Non-Integers
o 4.9 Initialization
 CHAPTER 5 Pointers and Arrays
o 5.3 Pointers and Arrays
o 5.7 Multi-dimensionalArrays
 CHAPTER 6 Structures
o 6.1 Basics of Structures
o 6.2 Structures and Functions
o 6.3 Arrays of Structure.

Reprezentari de numere: zecimal, binar, hexazecimal, transformari de numere dintr-o baza in alta

Operatii logice(AND, OR, XOR), operatii pe biti (AND, OR, XOR, NOT, SHIFT)

http://ocw.mit.edu/courses/electrical-engineering-and-computer-science/6-087-practical-
programming-in-c-january-iap-2010/lecture-notes/

http://www.bottomupcs.com/chapter01.xhtml

http://web.eecs.umich.edu/~jfr/embeddedctrls/files/C_review_jac_ETH.pdf

3
1.2 Exemple & Exercitii

Pentru a testa si rula aplicatiile, puteti folosi Code::Blocks, un mediu simplu de instalat si usor de folosit.
Il gasiti la :

http://www.codeblocks.org/downloads/26

Download-ati codeblocks-16.01mingw-setup.exe.

Dupa instalare, deschideti programul si din meniul: File->New->Project alegeti Console application

S-ar putea sa trebuiasca ceva modificari in setari: Settimgs->Compiler in tabul Toolchain executables
asigurativa ca path-ul spre folderol MinGW este correct (Compiler’s installation directory)

Tot la compiler settings, in tabul de Compiler settings, asigurati-va ca este selectat Target-ul de x86 (32
biti)

4
1.2.1 Siruri

Se da un sir de 100 elemente intregi. Sa se modifice elementele din sir, astfel:

- Elementele de pe pozitiile pare,sa se inmulteasca cu 10


- La elementele de pe pozitiile impare sa se adauge valoarea 5

int i, tab[100];

for(i=0; i<100; i++)


{
If(i%2)
tab[i]*=10;
else
tab[i]+=5;
}

A. Sa se modifice secventa de cod de mai sus, astfel:


- Inlocuiti bucla For cu o bucla While

5
- Tot al cincilea element din sir sa fie impartit la 3
- La fiecare al saptelea element din sir sa fie scuzuta valoarea 4
Pentru sirul de la problema anterioara:
B. Sa se scrie o secventa de cod care gaseste minimul si maximul din sir
C. Sa se scrie o secventa de cod care deplaseaza sirul la dreapta cu 1 pozitie
D. Sa se scrie o secventa de cod care insereaza o valoare in sir pe a 3-a pozitie
E. Sa se scrie o o secventa de cod care inverseaza ordinea elementelor
F. Sa se scrie o secventa de cod care sorteaza crescator sirul

1.2.2 Matrici

Se da o matrice de 5x10 elemente intregi. Sa se calculeze suma elementelor de pe a 2-a linie

int i,suma, tab[5][10];


suma=0;
for(i=0; i<10; i++)
{
suma=suma+tab[1][i];
}

A. Sa se modifice secventa de cod de mai sus, astfel:


- Sa se calculeze produsul elementelor de pe a 3-a coloana

Pentru o matrice patratica NxN de numere intregi sa se scrie o secventa de cod care:
B. Sa calculeze suma elementelor din matrice
C. Sa calculeze produsul elementelor de pe diagonal principala
D. Sa calculeze suma elementelor de pe diagonal secundara
E. Sa calculeze suma elementelor de deasupra diagonalei principale
F. Sa calculeze produsul elementelor de sub diagonala secundara

1.2.3 Structuri

Se da un sir de N numere complexe. Sa se parcurga acest sir si sa se afiseze numerele care au partea
reala pozitiva.

struct Complex
{
int Real;
int Imaginar;
}
int i;
Complex tab[N];

6
for(i=0; i<N; i++)
{
If(tab[i]. Real >=0)
Printf(“%d %d i”,tab[i]. Real, tab[i].Imaginar);
}

A. Sa se defineasca o structura de tip cerc care sa cuprinda:


- Coordonatele centrului cercului in system XOY
- Raza cercului
Pentru un sir de N cercuri, sa se afiseze pozitia din sir si coordonatele centrului cercurilor cu arie
mai mica decat 25.

B. Sa se defineasca o structura de tip carte care sa cuprinda:


- Numele autorului
- Titlul cartii
- Anul aparitiei

Pentru un sir de N carti, sa se ordoneze sirul de carti crescator, in functie de anul aparitiei
C. Pentru un sir de N carti, sa se afiseze autorii care de carte aparute dupa anul 1980.

1.2.4 Functii

Functia care primeste ca parametrii doua numere si returneaza suma:

int Suma(char a, char b)//Semnatura unei functii: tip returnat, nume, lista parametrii de intrare
{
int s;
s=a+b;
return s;
}

Apelul in program:

char v1,v2;

v1=3;
v2=5;

Printf(“Suma este:%d”,Suma(v1,v2));
Printf(“Suma este:%d”,Suma(10,12));

7
A. Sa se scrie o functie de comparare, care primeste ca parametrii de intrare doua numere intregi x si
y si returneaza urmatoarele valori:

-1:daca x<y
0:daca x=y
1:daca x>y

B. Sa se scrie o functie care primeste ca parametru un byte si returneaza suma cifrelor din numar

C. Sa se scrie o functie care primeste ca si parametru un sir de numere intregi si returneaza suma
elementelor din sir

D. Sa se scrie o functie care primeste ca parametrii de intrare 2 matrici si returneaza o matrice ce


reprezinta suma celor 2 matrici de intrare.

E. Sa se scrie o functie care primeste ca parametru un intreg n si un caracter, c si are urmatorul


comportament:

-daca c=’d’ printeaza numarul n in format zecimal

- daca c=’h’ printeaza numarul n in format hexa

1.2.5 Operatii cu biti

Se da urmatorul cod, care seteaza (pune pe 1) bitul de pe pozitia a 3-a, de la dreapta spre stanga ,dintr-
un byte:

char a=34;// 00100010 in binar

a= a|(1<<2);//echivalentul operatiei a=a OR 00000100

A. Sa se scrie o secventa de cod asemanatoare care reseteaza (pune pe 0) bit-ul de pe pozitia a 2-


a, dintr-un byte.
B. Sa se scrie o secventa de cod care verifica daca bitul de pe pozitia a 4-a e 1.
C. Sa se scrie o secventa de cod care printeaza un numar in format binar
D. Sa se scrie o functie generica care returneaza valoarea bitului dintr-un byte de pe pozitia n

8
9

You might also like