CATEGORII DOCUMENTE |
TIPURI DE DATE. FUNCTII STANDARD
Scop
Insusirea tipurilor de date, a variabilelor si functiilor standard utilizate in Foxpro.
Studiu necesar
Mod de realizare a lucrarii
Comentarii detaliate privind fiecare notiune, sintaxa comenzilor si exemple.
1. Tipuri de date
Informatiile prelucrate de calculator vor fi numite date. Exemple de date : numere, litere, siruri de caractere, etc. Un tip de date reprezinta o caracteristica a datelor care stabileste ce operatii se pot executa asupra lor, modul de codificare a datelor in memoria calculatorului, semnificatia acestor date. In limbajul FoxPro vom avea urmatoarele tipuri de date : logic, numeric, sir de caractere, data calendaristica, memo.
Pentru fiecare dintre aceste tipuri se va prezenta : modul de specificare a datelor de tipul respectiv, operatori ce se aplica asupra acestor date, comenzile si functiile referitoare la datele de tipul respectiv.
1.1 Tipul numeric
Acest tip este implementat astfel incit sa realizeze majoritatea operatiilor matematice intilnite in practica. De asemenea sint prevazute o serie de functii matematice care calculeaza functiile matematice elementare cum ar fi : exponentiala, logaritmul, functiile trigonometrice, etc, putindu-se astfel realiza calcule matematice mai complexe, cu efort mimim.
Operanzii numerici care intervin in expresii pot fi : cimpuri numerice ale unei baze de date, functii care returneaza valori numerice, variabile de tip numeric, constante numerice
Operatorii care se aplica unor operanzi numerici, avind ca rezultate tot valori numerice, sint sintetizati mai jos, in ordinea prioritatilor de evaluare :
Paranteze pentru gruparea expresiilor
Ridicare la putere
, Inmultire,impartire,modulo(restul impartirii)
Adunare si scadere
Prioritatea scade de sus in jos, pe acelasi nivel de prioritate evaluarea facindu-se de la stinga la dreapta, in ordinea aparitiei operatorilor in expresie.
Astfel o expresie de tipul : (2*3) se evalueaza dupa cum urmeaza :
Intre doua expresii numerice se pot aplica de asemenea operatori relationali, obtinindu-se astfel expresii logice. Acesti operatori sint:<,>,=,<=,>=,<>,#,!=.
Functia MOD( avind sintaxa :
MOD(<expN1>,<expN2>)
returneaza restul obtinut prin impartirea expresiei numerice <expN1> la expresia <expN2>, rezultatul fiind de tip numeric.
Exemplul 1 :
? MOD (39,7)
? MOD (44.44,11.11)
Afisarea numerelor este controlata de comanda SET DECIMALS care are urmatoarea sintaxa :
SET DECIMALS TO [<expN>] (de la 0 la 18)
Aceasta comanda determina numarul minim de cifre zecimale ce sint afisate daca nu se specifica un format explicit de afisare. Implicit acest numar este 2 dar se poate modifica
Exemplul 2
SET DECIMALS TO 4
Functii referitoare la semnul datelor numerice
Pentru aflarea valorii absolute a unui numar se foloseste functia ABS( Cu sintaxa :ABS(<expN>) returneaza o valoare numerica egala cu valoare absoluta a argumentului.
Functia SIGN( este folosita pentru a afla semnul numarului transmis ca argument astfel :
SIGN (<expN>) returneaza : +1 daca expN este pozitiva
0 daca expN este nula
-1 daca expN este negativa
Exemplul 3
? ABS(-300)
? SIGN(-40)
a= -2/3
?a=SIGN(a)*ABS(a)
.T.
Functii de aproximare a datelor numerice
Partea intreaga a unei expresii numerice este returnata de functia INT( care are sintaxa : INT(<expN>)
Exemplul 4
?INT
?INT
Partea fractionara a unui numar se obtine folosind tot functia INT() astfel :
a=14.46
?a-INT(a)
a= - 2.25
?a-INT(a)
Alte moduri de a obtine o aproximatie intreaga a unui numar sint date de functiile CEILING()
si FLOOR(), care au urmatoarele sintaxe :
CEILING(<expN>)
FLOOR(<expN>)
Functia CEILING() returneaza cel mai apropriat intreg mai mare sau egal cu <expN> iar FLOOR() se foloseste pentru a afla cel mai apropiat intreg mai mic sau egal cu <expN>.
Exemplul 5
?CEILING
?CEILING
?FLOOR
?FLOOR
Functia ROUND( realizeaza de asemenea o aproximare a unui numar, dar nu neaparat la un intreg, ca functiile anterioare, ci la un numar real, cu un numar dat de zecimale. Sintaxa comenzii este :
ROUND(<expN1>,<expN2>)
unde <expN1> reprezinta expresia de rotunjit iar<expN2> este numarul de zecimale ce se vor pastra in valoarea returnata de functie.
Functii matematice elementare
Din categoria acestor functii fac parte : exponentiala, logaritmul natural, logaritmul zecimal, radicalul. Aceste functii au formatul general :
EXP (<expN>) LOG10(<expn>)
LOG(<expN>) SQRT(<expN>)
si primesc ca argument o expresie numerica <expN> caruia ii aplica functia corespunzatoare
Exemplul 6
?EXP
? LOG(2)
? LOG10(10)
?EXP(LOG(3))
?SQRT
1.2 Tipul sir de caractere
Un sir de caractere reprezinta o multime ordonata de caractere care se trateaza ca un tot unitar. Constantele de tip sir de caractere se specifica prin multimea caracterelor care il compun incadrata intre apostrofuri simple sau duble ( la ambele capete trebuie sa avem acelasi tip de apostrof ).
Exemplul 7
De exemplu,'FoxPro' si "FoxPro" reprezinta acelasi sir de caractere.
Constructiile de forma "FoxPro' sau 'FoxPro" sint ilegale.
Constructiile de forma"10' (zece minute )" si '10" (zece minute )' sint corecte.
O expresie de tip sir de caractere reprezinta o combinatie de operanzi si operatori. Operanzii care intra in componenta acestor tipuri de expresii pot fi :
- cimpuri de tip sir de caractere ale unei baze de date,
- functii ce returneaza siruri de caractere,
- variabile de tip sir de caractere,
- constante de tip sir de caractere
Asupra sirurilor de caractere se aplica doua tipuri de operatori, astfel :
- operatori de concatenare : '+','-'
- operatori de comparare sau relationate
Operatorul de concatenare simplu face ca din doua siruri de caractere sa se obtina un al treilea prin alipirea celui de-al doilea sir la coada primului. De exemplu, expresia 'Limbajul' + 'FoxPro', dupa evaluare, va avea valoarea 'strada George Cosbuc'. Operatorul de concatenare special este asemanator cu operatorul de concatenare simplu cu deosebirea ca blancurile de la sfirsitul primului sir sint trecute la sfirsitul sirului al doilea. Astfel, din expresia 'Limbajul 'FoxPro', dupa evaluare va avea valoarea 'LimbajulFoxPro '.
Operatorii relationali ce se aplica intre doua siruri de caractere sint dati in urmatorul tabel :
Operator Relatie
inclus in
< mai mic decit
> mai mare decit
<> diferit de
<=; mai mic sau egal cu
>= mai mare sau egal cu
identic cu
Compararea a doua siruri de caractere de lungimi diferite este controlata de comanda SET EXACT : SET EXACT ON | OFF.
Functii referitoare la codificarea caracterelor din siruri
Functia CHR (), returneaza caracterul ASCII corespunzator codului numeric transmis functiei ca parametru. Pentru a obtine efectulul invers, se utilizeaza ASC
Exemplu
?CHR
?CHR (65)=='A'
.T.
? ASC ('A')
?ASC ('a') = ASC ('ana')
.T.
?'A' == CHR (ASC('A'))
.T.
?65=ASC(CHR(65))
.T.
Functii referitoare la subsirurile de caractere
Extragerea unui subsir dintr-un sir de caractere se realizeaza cu functia SUBSTR (). Functiile LEFT () si RIGHT () returneaza un subsir al unui sir dat, pozitionat la stinga, respectiv la dreapta acestuia.
Exemplul 9
?SUBSTR ( 'IONESCU',1,3)
ION
?SUBSTR ('IONESCU',4)
ESCU
?LEFT ("IONESCU',2)
IO
?RIGHT ('IONESCU',4)
ESCU
Crearea unui sir de caractere dintr-un alt sir, prin repetarea acestuia de un numar dat de ori se realizeaza folosind functiile REPLICATE () si SPACE (). Functia REPLICATE () cu sintaxa : REPLICATE (<expC>, <expN>) returneaza un sir de caractere obtinut prin repetarea sirului <expC> de <expN> ori.
O forma particulara a lui REPLICATE () o reprezinta functia SPACE() cu urmatoarea sintaxa : SPACE (<expN>) Aceasta functie returneaza un sir de blancuri (CHR(32)) cu lungimea de <expN> caractere fiind echivalenta cu constructia REPLICATE(' ', <expN>).
Exemplul 10
?REPLICATE
?REPLICATE (' ',6) == SPACE(6)
.T.
O alta categorie de functii care au ca obiect de prelucrare un subsir de caractere al unui sir dat o reprezinta functiile ALLTRIM (), LTRIM (), TRIM (), RTRIM (). Aceste functii elimina blancurile de la capetele unui sir de caractere obtinindu-se un subsir al sirului initial ce contine doar informatia utila a sirului.
Exemplul 11
?ALLTRIM GAMA') == 'GAMA'
.T.
?'Ma numesc' + RTRIM ('IONESCU ') + 'DANIEL'
Ma numesc IONESCU DANIEL
?'si sunt' + LTRIM (' student') + 'la informatica'
si sunt student la informatica
Efectul invers, adica adaugarea de blancuri sau alte caractere la un sir, la dreapta sau la stinga acestuia se realizeaza cu ajutorul functiilor PADC (), PADL (), PADR ()
Cu o sintaxa de forma :
PADC (<expr>,<expN>[,<expC>])
PADL (<expr>,<expN>[,<expC>])
PADR(<expr>,<expN>[,<expC>])
aceste functii adauga la expresia <expr> sirul de caractere <expC>, la dreapta pentru PADR() la stinga pentru PADL () si la ambele capete pentru PADC() pina se obtine o lungime a sirului de <expN> caractere. <Expr> poate fi de tip sir de caractere, de tip numeric sau de tip data calendaristica, in cazul ultimelor doua realizindu-se mai intii conversia la tipul sir de caractere.
Exemplul 12
?PADL ('Titlu ',30,'-')
-------- ----- ------ --- Titlu
?PADR('Titlu',30,'-')
Titlu-------- ----- ------ ----------
?PADC('Pagina 1',30,'-')
----- ----- ------Titlu----- ----- ----------
Cautarea unui subsir intr-un sir dat, lucru care se realizeaza cu ajutorul functiilor AT (), ATC (), ATCLINE (), ATLINE (), RAT (), RATLINE (), OCCURS ().
Exemplul 13
?AT ('f','informatica')
?AT ('F','informatica')
?ATC ('f','informatica')
? OCCURS ( 'a','ambasada')
Functii ce returneaza informatii despre sir
Functiile LEN (),ISALPHA (), ISDIGIT (), ISLOWER (), ISUPPER ()
Exemplul 14
?LEN('informatica')
?ISALPHA ('FoxPro')
.T.
?ISDIGIT
.T.
?ISLOWER('ana')
.T.
ISUPPER('Ana')
.T.
Functii privind transformari ale sirurilor de caractere
Diferentierea dintre caracterele alfabetice mici si mari a dus la necesitatea transformarii caracterelor mici in majuscule si invers. Aceste operatii sint realizate de functiile LOWER (), UPPER () si PROPER ().
Functia STUFF () inlocuieste intr-un sir de caractere un subsir al acestuia cu un alt sir de caractere.
Exemplul 15
a='ALFA'
b='alfa'
?UPPER(a)==UPPER(b)
.T.
?LOWER(a)==LOWER(b)
.T.
PROPER('FoxPro')
Foxpro
sir='cuie'
sir=STUFF(sir,3,0,'cu')
?sir
cucuie
Functii speciale pentru sirurile de caractere
Functia LIKE () compara doua expresii de tip caracter astfel : una din expresii reprezinta modelul in care trebuie sa se incadreze cea de-a doua, returnind adevarat in caz de potrivire si fals in caz de nepotrivire. In alcatuirea modelului se folosesc caracterele * si ? cu urmatoarea semnificatie
* inlocuieste orice grup de caractere
? inlocuieste un singur caracter
Exemplul 16
?LIKE('*TOR','CALCULATOR')
.T.
?LIKE ('?ALCULATOR','CALCULATOR')
.T.
?LIKE('?OTOR','CALCULATOR')
.F.
1.3 Tipul data calendaristica
Formatul de specificare a datelor calendaristice este controlat de comanda SET DATE care are urmatoarea sintaxa :
SET DATE [TO]
AMERICAN | ANSI | BRITISH | FRENCH | GERMAN | ITALIAN |
Formatul implicit pentru data calendaristica este cel American (ll/zz/aa). In specificarea anului se pot folosi doua cifre, caz in care se presupune automat ca ne referim la secolul 20 sau prin patru cifre cind anul este specificat complet. Alegerea intre aceste doua variante se face cu comanda SET CENTURY care are urmatoarea sintaxa : SET CENTURY ON | OFF. De asemenea delimitatorii care separa ziua luna si anul din expresia unei constante de tip data calendaristica se pot modifica prin comanda SET MARK TO cu urmatoarea sintaxa : SET MARK TO [<expC>], expresia <expC> trebuie sa reprezinte un singur caracter care va deveni delimitatorul in reprezentarea externa a datelor calendaristice. Separatorul implicit folosit pina la executia unei comenzi SET MARK TO este caracterul "/". DATE () obtine data curenta a sistemului
Avind o expresie de tip data calendaristica putem afla in ce zi din cadrul saptaminii cade aceasta data. Acest lucru se realizeaza cu functiile DOW () si CDOW () care afiseaza numele zilei, respectiv numarul zilei din cadrul saptaminii.
Ziua in cadrul saptaminii este returnata de functia DAY () iar luna corespunzatoare unei expresii de tip data calendaristica este returnata de functiile MONTH () si CMONTH ().
Dintr-o expresie de tip data calendaristica putem izola anul, ca valoare numerica, folosind functia YEAR ().
Exemplul 17
?DATE
SET CENTURY ON
SET MARK TO '.'
?DATE
?CDOW(DATE())
Saturday
?DOW
DAY(<expD>)
?DAY
?MONTH(DATE())
3
?CMONTH
March
?YEAR(DATE())
Controlul timpului in Foxpro
Ora exacta a sistemului se obtine cu functia TIME () iar mentinerea acesteia tot timpul pe ecran, se realizeazacu comanda SET CLOCK.
Exemplul 18
?TIME
?TIME
CLEAR
SET CLOCK TO 10,10
Formatul de afisare a ceasului se poate schimba folosind comanda SET HOURS ce are urmatoarea sintaxa : SET HOURS TO
Functii pentru conversii intre tipuri de date
Transformarea unei date calendaristice intr-un sir de caractere se
realizeaza cu functiile
DTOC (), DTOS(), DMY(), MDY() iar trecerea inversa cu ajutorul functiei CTOD () .
Exemplul 19
?DTOC
.T.
?DTOC(DATE(),1)
data1=
data2=
a=DTOS(data1)
?a
b=DTOS(data2)
?b
?a>b
.T.
a=DTOC(data1)
?a
b=DTOC(data2)
?b
?a>b
.F.
SET CENTURY OFF
?DMY(DATE())
09 MAY 93
?MDY(DATE())
MAY 09,93
SET CENTURY ON
?DMY
01 MAY 1993
?MDY
JULY 31,1993
Trecerea de la valori numerice la siruri de caractere se face cu functia STR () iar trecerea inversa cu functia VAL ()
Exemplul 20
?STR
.T.
?STR
?STR
?VAL
?VAL('1A')
1.4 Tipul logic
Acest tip este caracteristic datelor ce nu pot lua decit doua valori, adevarat (in engleza "true") sau fals (in engleza "false"). Pentru a specifica valoarea adevarat a unei expresii de tip logic se foloseste constructia.T. ( de la true) iar pentru valoarea fals se foloseste.F. (de la false). O expresie de tip logic reprezinta o combinatie de operanzi si operatori, realizata dupa anumite reguli sintactice, pentru a forma o constructie corecta, a carei evaluare va avea ca rezultat o valoare logica. Operanzii ce intra in componenta expresiilor logice sint de urmatoarele tipuri :cimpuri de tip logic ale unei baze de date , functii ce returneaza valori logice, variabile de tip logic, alte expresii logice iar operatorii logici sunt cei clasici.
Exemplul 21
? NOT (1=3)
.T.
? (1<=4) AND (5>3)
.T.
? 6<3 OR 4*2=9
.F.
Functiile referitoare la toate tipurile de date
Pentru a afla tipul unei expresii s-a introdus functia TYPE ().Rezultatul intors de functie este de tip caracter, cu urmatoarea semnificatii : C -sir de caractere, N -numeric,D -data calendaristica, L -logic, M -memo,U -nedefinit.
Exemplul 22
Pentru a afla ce tip de data returneaza functia DATE() vom folosi instructiunea :
?TYPE('DATE()')
D
?TYPE
L
.F.
?TYPE('ALFA')
U
?TYPE('"Salutari ! "')
C
Exista o categorie de functii ce compara intre ele mai multe expresii, returnind informatii referitoare la aceasta comparatie. In aceasta categorie intra functiile MIN (), MAX (), BETWEEN () .
Apartenenta la o multime este testata prin functia INLIST ().
Exemplul 23
?MIN
?DATE
?MAX ,DATE())=DATE()
.T.
?MIN('abc','ABC','123')
?BETWEEN
.T.
?DATE
?BETWEEN(DATE(),
.T.
alfa='a1'
?BETWEEN(alfa,'aa','az')
.F.
zi='duminica'
?INLIST(zi,'luni',marti','miercuri','joi','vineri','simbata','duminica')
.T.
?INLIST
.F.
1.5 Cimpurile Memo
In memorarea informatiilor intr-o baza de date, apar situatii cind, cantitatea de informatii ce trebuie stocata intr-un anumit cimp difera foarte mult de la o inregistrare la alta. Astfel s-a introdus cimpul memo, care permite memorarea informatiilor de acest fel mult mai eficient. O baza de date care contine cel putin un cimp memo are asociat un fisier suplimentar in care sint depuse informatiile continute in acest cimp.
Detalii despre acest tip de cimp in LUCRAREA Nr.
2 VARIABILE
Crearea unei variabile sau modificarea valorii acesteia se realizeaza prin operatorul de atribuire, cu urmatoarea sintaxa :
<variabila> = <expr>
Functionarea unei asemenea comenzi are loc astfel :
se evalueaza expresia <expr>, obtinindu-se o valoare de un anumit tip ;
se cauta in memorie variabila cu numele <variabila> si, daca se gaseste, se inlocuieste vechiul continut al acesteia, cu valoarea expresiei ;
daca nu se gaseste variabila respectiva, FOXPRO creaza una cu numele <variabila> in care depune valoarea expresiei ;
tipul variabilei este dat de tipul valorii expresiei, indiferent de tipul anterior al variabilei, in cazul cind aceasta exista si inainte de executia comenzii.
O comanda echivalenta cu operatorul de atribuire este STORE cu sintaxa:
STORE <expr> TO <lista variabile>
Exemplul 24
a = 10
a = 'informatica'
STORE 0 to a,b,c
STORE TO data
Memoria ocupata de variabile poate fi eliberata folosind comenzile RELEASE, CLEAR ALL, CLEAR MEMORY.
Exemplul 25
RELEASE alfa, beta
RELEASE ALL LIKE a*
RELEASE ALL EXCEPT b?
Apare deseori situatia in care se doreste memorarea unor variabile (denumire si continut) in alta zona de memorare decit memoria, in vederea modificarii acestora. Dupa ce modificarile executate nu mai sint necesare se va putea reveni la vechea situatie prin refacerea variabilelor depozitate anterior.
Acest lucru se realizeaza prin intermediul comenzilor SAVE TO si RESTORE FROM cu urmatoarele
Exemplul 26
CLEAR ALL
CLEAR
a=1
b=2
suma = a+b
?a,'+',b,'=',suma
SAVE TO f_var
a=5
b=3
suma = a+b
?a,'+',b,'=',suma
RESTORE TO f_var
?a,'+',b,'=',suma
Tablourile se declara cu comanda DECLARE si pot avea doar 1-2 dimensiuni, dar spre deosebire de alte limbaje de programare, natura elementelor nu este omogena:
Exemplul 27
DECLARE A[6]
A[
A[2]='informatica'
O tehnica speciala de lucru cu variabile o reprezinta macrosubstitutia, prin care continutul unei variabile de tip sir de caractere, este tratat ca numele altei variabile sau alt element al FoxPro (cimp al unei baze de date,nume fisier) ca si cum in locul variabilei respective ar fi pus sirul de caractere continut de acesta, fara apostrofurile delimitatoare.
Exemplul 28
x='Popa'
?x
Popa
a='alfa'
alfa='Salut!'
?&a
Salut!
?alfa
Salut!
O alta metoda de referire indirecta la o variabila, data, pe linga macrosubstitutie este reprezentata de expresiile nume. Acestea determina tratarea valorii unei expresii ca un nume (de variabila, cimp,etc.). Pentru ca o expresie sa fie tratata ca o expresie de tip nume, aceasta se incadreaza intre paranteze rotunde. Aceasta constructie este tratata ca o expresie de tip nume numai acolo unde nu exista posibilitatea confundarii parantezelor rotunde cu cele care grupeaza operatii din expresiile FoxPro.
Exemplul 28
a='nume'
b='propriu'
a+b) && nu va fi tratata ca o expresie nume
nume propriu
REPLACE (a) WITH 'POPESCU' && (a) este o expresie nume
Ori de cite ori este posibila folosirea expresiilor nume, se recomanda aceasta metoda deoarece macrosubstitutia este mai lenta.
a='alfa'
alfa='Salut!'
a) este echivalent cu ?alfa
Pentru afisarea continutului variabilelor de memorie existente la un moment dat se poate folosi una din comenzile LIST MEMORY sau DISPLAY MEMORY :
Comenzile afiseaza numele, tipul, continutul tuturor variabilelor definite in acest moment, numarul variabilelor create de utilizator, memoria folosita si cea disponibila.
Proiectul va cuprinde:
exemple pentru toate comenzile pentru care nu au fost date exemple
rezolvarea exercitiilor
Exercitii
Urmariti secventa de comenzi si stabiliti ce afiseaza fiecare. Acolo unde sunt erori, corectati.
?'x=',10
?x=10
DECLARE A[5,5,5]
DECLARE A[3]
?A
STORE 0 TO A
?A[1],A[2]
STORE 'POPA' TO A[2]
STORE 'NELU' TO A[1]
?A[1]+'-'+ADRIANA'
?-10.E2, -10.0E2, -10.2E666
SET DECIMAL TO 4
?MOD(5.25,6)
?MOD(5.25,5
?ROUND(1.2345)
?FLOOR(34.34)
??CEILING(-10), CEILING(10.90),CEILING(10.23)
x=1000
l=5
z=3
?str(x,l,z)
?str(x,l)
?str(x,2)
x='abc'
y='de'
w=x+y+'*'
z=x-y+'*'
?x<w,x=w,x>w
?y<z,y=z,y>z
19 SET EXACT ON
?x<w,x=w,x>w
?y<z,y=z,y>z
20. e='a'
?INLIST(e,'a',l',m','i','j','v','s','u')
21. x=DATE()
?x
SET DATE ITALIAN
?x
SET CENTURY ON
?x
22. data1=
data2=
?data1+10
? data1<data2, data2<data1
?data1-data2, data2-data1
SET MARK TO '*'
?data1
23. DECLARE A[4]
A[4]=[informatica]
DIMENSION A[4]
A[1]='1'
Raspundeti la urmatoarele intrebari:
Ce se intimpla la punctul 17 de mai sus, daca:
- parametrul al doilea are o lungime prea mica
- lungimea indicata in functia str este prea mare
- numarul x are zecimale si lipseste parametrul al treilea
In ce se calculeaza diferenta a doua date calendaristice?
Ce se obtine prin adunarea sau scaderea unui numar de zile la o data calendaristica?
Ce rol are comanda SET MARK?
Care este delimitatorul pentru data calendaristica
Care este deosebirea dintre comenzile = si STORE?
Care este deosebirea dintre comenzile LIST MEMORY si DISPLAY MEMORY?
Care este deosebirea dintre comenzile DECLARE si DIMENSION
Introduceti data curenta intr-o variabila x. Scrieti comenzile prin
care afisati numele zilei de ieri, azi si
Care sunt functiile de aproximatie in FoxPro. Dati exemple.
Consideram sirul de caractere: 'Eu sunt student la informatica'
extrageti cuvintele din acest sir si le depuneti in variabile separate
inlocuiti cuvintul informatica cu MATEMATICA
Stiind ca la un examen se prezinta N studenti si ca timpul de examinare este in medie de X minute, aflati timpul de asteptare al ultimului student in zile, ore si minute.
Politica de confidentialitate | Termeni si conditii de utilizare |
Vizualizari: 2275
Importanta:
Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved