4.5Probleme propuse
Problema 1. Fie doi vectori, x şi y, cu câte trei componente de tip double fiecare. Elementele acestor vectori se vor citi de la tastatură. Să se facă un program care să calculeze suma celor doi vectori. Vectorii se vor aloca cu instrucţiunea new.
Problema 2. Fie doi vectori, a şi b, cu câte trei componente de tip double fiecare. Elementele acestor vectori se vor citi de la tastatură. Să se facă un program care să calculeze produsul scalar al celor doi vectori. Vectorii se vor aloca cu instrucţiunea malloc.
Indicaţie. Produsul scalar al celor doi vectori este
Problema 3. Fie un vector a cu trei componente de tip double. Componentele vectorului a se citesc de la tastatură. Să se determine cel mai mic component al vectorului a. Vectorul a se va aloca cu instrucţiunea new.
Problema 4. Fie un vector x cu trei componente de tip double. Componentele vectorului x se citesc de la tastatură. Să se determine cel mai mare component în valoare absolută al vectorului a. Vectorul a se va aloca cu instrucţiunea malloc.
Problema 5. Să se facă o funcţie care să calculeze suma componentelor unui vector x cu cinci componente de tip double. Prototipul funcţiei va fi
double suma(double x[]) ;
Să se utilizeze funcţia pentru a calcula în funcţia main() suma componentelor unui vector a cu 5 componente de tip double alocat cu funcţia new. Elementele vectorului a se citesc de la tastatură.
Problema 6. Fie următorul program ce defineşte două variabile de tip pointer la char, ptrchar şi ptrchar2. Să se execute programul şi să se explice rezultatele.
# include
using namespace std;
# include
int main()
{
char * ptrchar = (char *) malloc(10 * sizeof(char));
char * ptrchar2;
cout << "pointer to char size = " << sizeof(ptrchar) << endl;
cout << "pointer to char size = " << sizeof(ptrchar2) << endl;
cout << "char size = " << sizeof(* ptrchar) << endl;
return 0;
}
5Operaţii cu şiruri de caractere tip C
5.1Funcţii standard de prelucrare a caracterelor
Un sir de caractere tip C este un tablou unidimensional ale cărui componente sunt caractere ASCII, iar ultimul component conţine caracterul ‘\0’. Caracterul ‘\0’ este folosit în algoritme pentru detectarea sfârşitului de şir. Bibliotecile standard C / C++ conţin multe funcţii utile pentru lucrul cu caractere. Funcţiile următoare testează tipul unui caracter, cifră, literă, etc. Prototipurile lor se află în biblioteca sau .
Funcţie
|
Descriere
|
int isalnum (int c);
|
Test dacă un caracter este alfanumeric
|
int isalpha (int c);
|
Test dacă un caracter este alfabetic
|
int isdigit (int c);
|
Test dacă un caracter este o cifră zecimală
|
int isxdigit(int c);
|
Test dacă un caracter este o cifră hexazecimală
|
int islower (int c);
|
Test dacă un caracter este literă mică
|
int isupper (int c);
|
Test dacă un caracter este literă mare
|
int isspace (int c);
|
Test dacă un caracter este spaţiu (‘ ‘, ‘\n’, ‘\t’)
|
Tabelul 4. Funcţii standard de prelucrare a caracterelor.
Funcţiile au un rezultat diferit de zero dacă argumentul este conform descrierii funcţiei. Următoarele funcţii convertesc literele mari în litere mici şi invers.
Funcţie
|
Descriere
|
int tolower(int c);
|
Converteşte în litere mici
|
int toupper(int c);
|
Converteşte în litere mari
|
Alte funcţii ce prelucrează şiruri de caractere sunt :
int atoi(char s[]);
long atol(char s[]);
double atof(char s[]);
care convertesc un şir de caractere într-un număr întreg şi respectiv real. Prototipurile acestor funcţii se află în biblioteca sau şi sau .
O funcţie utilă la prelucrarea şirurilor este strlen() ce dă lungimea unui şir de caractere, fără caracterul ‘\0’ terminal. Prototipul acestei funcţii este
int strlen(char[]);
şi este definit în biblioteca sau .
Funcţia
int strcmp(const char s1[], const char s2[]);
compară două şiruri, s1 şi s2, caracter cu caracter, până la primul caracter diferit. Rezultatul este un număr < 0, = 0, sau > 0, după cum sunt caracterele diferite comparate. Exemple de utilizare a funcţiei strcmp sunt prezentate în tabelul de mai jos.
strcmp(“abc”, “bcd”)
|
< 0
|
‘a’ < ‘b’
|
strcmp(“xyz”, “xyz”)
|
= 0
|
Şirurile sunt egale
|
strcmp(“abcd”, “abc”)
|
> 0
|
şirul “abcd” este mai lung
|
Prototipul acestei funcţii se găseşte în biblioteca sau .
In limbajul C++ şirurile de caractere se citesc de la tastatură şi se scriu pe ecran cu instrucţiunile cin şi cout.
Fie x un şir de caractere. El se citeşte şi se afişază astfel
cin >> x ;
cout << x << endl ;
In limbajul C şirurile de caractere şe citesc de la tastatură şi se scriu pe ecran cu instrucţiunile scanf şi printf cu specificatorul de format %s.
Un şir de caractere x se citeşte şi se afişază astfel
scanf(“%s”, x);
printf(“% s \n”, x)
Sirul de caractere citit se termină la primul caracter spaţiu, tab sau ‘\n’.
Dostları ilə paylaş: |