Documente Academic
Documente Profesional
Documente Cultură
Laborator 4
Laborator 4
RAPORT
Lucrare de laborator nr.4
la Programarea Calculatoarelor
A efectuat:
st. gr. XXXX XXXXX
A verificat:
dr., conf. univ. St.Buzurniuc
Chişinău - 2018
Lucrare de laborator nr.4
Sarcina problemei: Într-un șir de caractere cuvintele sunt despărțite print-un spațiu. Să se
determine numărul de cuvinte care încep și se termină cu același caracter
Mersul lucrării:
In limbajul C nu existã un tip de date “șir de caractere”, deși existã constante șir (între
ghilimele). Șirurile de caractere se memoreazã în vectori cu componente de tip char, dar există
anumite particularităti în lucrul cu siruri fatã de lucrul cu alti vectori.
Șirurile de caractere reprezintă nume de persoane, produse, localitãti iar uneori chiar
propozitii sau fragmente de texte. Prin natura lor șirurile pot avea o lungime variabilă în limite
foarte largi, iar lungimea lor se poate modifica chiar în cursul execuției unui program ca urmare a
unor operații cum ar fi alipirea a două șiruri, ștergerea sau înserarea unui subșir într-un șir ș.a.
Operațiile uzuale cu șiruri sunt realizate în C prin funcții și nu prin operatori ai limbajului.
O astfel de funcție primește unul sau două șiruri și eventual produce un alt șir (de obicei șirul
rezultat înlocuiește primul șir primit de funcție). Pentru fiecare șir funcția ar trebui sã primească
adresa de început a șirului (numele vectorului) și lungimea sa, lungime care se modifică la
anumite operații.
Pentru simplificarea listei de argumente și a utilizării funcțiilor pentru operații cu șiruri s-a
decis ca fiecare șir memorat într-un vector să fie terminat cu un octet zero (‘\0’) și să nu se mai
transmită explicit lungimea șirului. Multe funcții care produc un nou șir precum si funcțiile
standard de citire adaugă automat un octet terminator la șirul produs (citit), iar funcțiile care
prelucrează sau afișează șiruri detecteazã sfârșitul șirului la primul octet zero.
Citirea unui șir de la tastatură se poate face fie cu funcția “scanf” și descriptor “%s”, fie cu
funcția “gets” astfel:
- Citirea unei linii care poate include spații albe se va face cu “gets”.
- Citirea unui cuvânt (șir delimitat prin spații albe) se va face cu “scanf”.
Ambele funcții primesc ca argument adresa unde se citeste șirul și înlocuiesc caracterul ‘\n’
introdus de la tastatură cu terminatorul de sir (zero).
1
Schema logică a algoritmului:
Start
cuvinteGasite = 0
Cuvint != NULL
Stop
cuvint[0] ==
cuvint[strlen(cuvint) - 1]
cuvinteGasite++
2
Codul (textul) programului în limbajul C:
#include <stdio.h>
#include <string.h>
int main() {
int limit = 100, i;
char text[limit];
int cuvinteGasite = 0;
firstChar = "";
lastChar = "";
}
}
return 0;
}
3
Analiza rezultatelor și concluzii:
https://www.tutorialspoint.com/c_standard_library/c_function_gets.htm
https://www.tutorialspoint.com/c_standard_library/c_function_strtok.htm
http://www.cs.ucv.ro/staff/gmarian/Programare/cap5_Instructiuni.pdf
https://ocw.cs.pub.ro/courses/programare/laboratoare/lab10
http://andrei.clubcisco.ro/cursuri/f/f-sym/1pc/2009CC/cursuri/Moraru-PC2008.pdf