Documente Academic
Documente Profesional
Documente Cultură
Fundamentele programrii
Curs 5
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Instruciuni de ciclare
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
Instruciunea while
Sintaxa:
while (condiie)
bloc-instruciuni
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Exemple
.
Exemplu: aarea primelor n numere ntregi pozitive
.
int n, i = 0;
scanf("%d", &n);
while(i<n) {
printf("%d\n", i);
++i;
}
.
.
Exemplu: aarea nr. pozitive ct timp caracterul citit este egal cu Y
.
int i = 0;
while(getch() == 'Y') {
printf("%d\n", i);
++i;
}
.
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Exemple
.
Exemplu: aarea primelor n numere ntregi pozitive
.
int n, i = 0;
scanf("%d", &n);
while(i<n) {
printf("%d\n", i);
++i;
}
.
.
Exemplu: aarea nr. pozitive ct timp caracterul citit este egal cu Y
.
int i = 0;
while(getch() == 'Y') {
printf("%d\n", i);
++i;
}
.
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Problem
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
Instruciunea do-while
Sintaxa:
do
bloc-instruciuni
while (condiie);
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Exemple
.
Exemplu: calcularea n!
.
int n, i = 1, fact = 1;
scanf("%d", &n);
do {
fact *= i++;
}while(i<=n);
.
.
Exemplu: aarea tuturor caracterelor din alfabet
.
int i = 'A';
do
printf("%c\n", i++);
while(i
<= 'Z');
.
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Exemple
.
Exemplu: calcularea n!
.
int n, i = 1, fact = 1;
scanf("%d", &n);
do {
fact *= i++;
}while(i<=n);
.
.
Exemplu: aarea tuturor caracterelor din alfabet
.
int i = 'A';
do
printf("%c\n", i++);
while(i
<= 'Z');
.
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Problem
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Exemple
.
Exemplu: calcularea n!
.
int n,i,p;
// ... (citire n)
.for ( p = i = 1 ; i <= n ; i++ ) p *= i;
.
Exemplu: calcularea n!
.
int n,i,p;
// ... (citire n)
for
( p = 1, i = 1 ; i <= n ; p *= i++ );
.
.
Exemplu: calcularea n!
.
int n,i,p;
// ... (citire n)
for
( p = 1, i = n ; i ; i-- ) p *= i;
.
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Exemple
.
Exemplu: calcularea n!
.
int n,i,p;
// ... (citire n)
.for ( p = i = 1 ; i <= n ; i++ ) p *= i;
.
Exemplu: calcularea n!
.
int n,i,p;
// ... (citire n)
for
( p = 1, i = 1 ; i <= n ; p *= i++ );
.
.
Exemplu: calcularea n!
.
int n,i,p;
// ... (citire n)
for
( p = 1, i = n ; i ; i-- ) p *= i;
.
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Exemple
.
Exemplu: calcularea n!
.
int n,i,p;
// ... (citire n)
.for ( p = i = 1 ; i <= n ; i++ ) p *= i;
.
Exemplu: calcularea n!
.
int n,i,p;
// ... (citire n)
for
( p = 1, i = 1 ; i <= n ; p *= i++ );
.
.
Exemplu: calcularea n!
.
int n,i,p;
// ... (citire n)
for
( p = 1, i = n ; i ; i-- ) p *= i;
.
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Problem
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Problem
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Problem
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..
. Tem
Un sistem de detecie a intruilor (IDS) citete pachete de pe reea
(consol). Dimensiunea ecrui pachet este de 32 bii.
S se implementeze un program ce simuleaz funcionarea unui IDS,
prin citirea a N pachete i generarea unor mesaje de alert n funcie
de urmtoarele semnturi malware:
ntr-o secven de M pachete consecutive exist cel puin L pachete cu
valoarea 0x7ABACC88 aare mesaj ALERT1
Mai mult de 60% din pachetele citite au valoarea 0x8889999 aare
mesaj ALERT2
Exist o incrementare periodic a valorii pachetelor (perioada = 5) cu o
unitate aare mesaj ALERT3 (Exemplu: 1 5 2 7 8 2 5 3 0 0 0)
Valoare: 1 punct
Termen limit: prima rezolvare primit pe email (cel mai trziu data
de 13 Nov. ora 9:00)
..
Fundamentele programrii
.
..
.
..
. . . . . . . . . . . .
.. .. .. .. .. .. .. .. .. .. .. .. ..
.
..
.
..
.
..
.
..