Col·lecció d'exercicis resolts de programació en C

Programació I · 1r curs · Grau en Enginyeria Informàtica · Universitat de Lleida (UDL). Exercicis de Programació I amb l'enunciat de cada problema i el seu…

Programació I · Universitat de Lleida · Grau en Enginyeria Informàtica · 1r curs

84 problemes · Fonaments: tipus, variables i expressions · Estructures de control condicionals · Bucles i disseny iteratiu · Vectors i matrius · Cadenes de caràcters · Punters i gestió de memòria

1. Problema 1 (Bloc 1): Missatge inicial per pant…. Desenvolupeu un programa elemental en C que imprimeixi a la consola el missatge literal "Hola, món!" (o la…

Fonaments: tipus, variables i expressions

1. Problema 1 (Bloc 1): Missatge inicial per pantalla

Desenvolupeu un programa elemental en C que imprimeixi a la consola el missatge literal "Hola, món!" (o la salutació estàndard equivalent en anglès) seguit d'un canvi de línia.

Enunciado: 1. Problema 1 (Bloc 1): Missatge inicial per pant…

2. Problema 2 (Bloc 1): Lectura i impressió d'un…. Elaboreu un programa que demani a l'usuari un valor de tipus enter a través del teclat i posteriorment el…

Fonaments: tipus, variables i expressions

2. Problema 2 (Bloc 1): Lectura i impressió d'un enter

Elaboreu un programa que demani a l'usuari un valor de tipus enter a través del teclat i posteriorment el mostri per pantalla confirmant la dada recollida.

Enunciado: 2. Problema 2 (Bloc 1): Lectura i impressió d'un…

3. Problema 3 (Bloc 1): Enter en bases decimal, o…. Implementeu un programa que llegeixi un número enter introduït per teclat i en mostri la representació en els…

Fonaments: tipus, variables i expressions

3. Problema 3 (Bloc 1): Enter en bases decimal, octal i hexadecimal

Implementeu un programa que llegeixi un número enter introduït per teclat i en mostri la representació en els tres sistemes de numeració clàssics: decimal, octal i hexadecimal.

Enunciado: 3. Problema 3 (Bloc 1): Enter en bases decimal, o…

4. Problema 4 (Bloc 1): Formats d'un nombre real. Escriviu un programa en C que rebi per teclat un nombre en coma flotant (real) i en presenti el valor…

Fonaments: tipus, variables i expressions

4. Problema 4 (Bloc 1): Formats d'un nombre real

Escriviu un programa en C que rebi per teclat un nombre en coma flotant (real) i en presenti el valor aplicant formats de sortida per a números reals.

Enunciado: 4. Problema 4 (Bloc 1): Formats d'un nombre real

5. Problema 5 (Bloc 1): Operacions aritmètiques e…. Dissenyeu un programa que demani dos valors enters per entrada estàndard i calculi i presenti els resultats…

Fonaments: tipus, variables i expressions

Problema 5 (Bloc 1): Operacions aritmètiques entre enters

Dissenyeu un programa que demani dos valors enters per entrada estàndard i calculi i presenti els resultats de la seva addició, sostracció, multiplicació, així com el quocient i el residu de la divisió entera.

Enunciado: 5. Problema 5 (Bloc 1): Operacions aritmètiques e…

6. Problema 6 (Bloc 1): Operacions amb valors rea…. Creeu un programa que permeti la lectura per teclat de dos nombres de coma flotant i mostri el càlcul de la…

Fonaments: tipus, variables i expressions

Problema 6 (Bloc 1): Operacions amb valors reals

Creeu un programa que permeti la lectura per teclat de dos nombres de coma flotant i mostri el càlcul de la suma, resta, producte i divisió real entre ambdós.

Enunciado: 6. Problema 6 (Bloc 1): Operacions amb valors rea…

7. Problema 7 (Bloc 1): Caràcter i el seu valor A…. Escriviu un programa que demani a l'usuari un únic caràcter i en mostri per pantalla tant el símbol gràfic…

Fonaments: tipus, variables i expressions

Problema 7 (Bloc 1): Caràcter i el seu valor ASCII

Escriviu un programa que demani a l'usuari un únic caràcter i en mostri per pantalla tant el símbol gràfic com el codi numèric ASCII corresponent.

Enunciado: 7. Problema 7 (Bloc 1): Caràcter i el seu valor A…

8. Problema 8 (Bloc 1): Perímetre i àrea d'un qua…. Programeu una aplicació que demani la longitud de la base d'un quadrat (mesurada en centímetres com a valor…

Fonaments: tipus, variables i expressions

Problema 8 (Bloc 1): Perímetre i àrea d'un quadrat

Programeu una aplicació que demani la longitud de la base d'un quadrat (mesurada en centímetres com a valor real) i calculi el seu perímetre conjuntament amb la seva àrea superficial.

Enunciado: 8. Problema 8 (Bloc 1): Perímetre i àrea d'un qua…

9. Problema 9 (Bloc 1): Perímetre i àrea d'un rec…. Feu un programa que demani per teclat les dimensions de la base i de l'alçada d'un rectangle en centímetres…

Fonaments: tipus, variables i expressions

Feu un programa que demani per teclat les dimensions de la base i de l'alçada d'un rectangle en centímetres (utilitzant valors reals) i en calculi el perímetre total i l'àrea.

Enunciado: 9. Problema 9 (Bloc 1): Perímetre i àrea d'un rec…

10. Problema 10 (Bloc 1): Càlcul de l'àrea d'un t…. Desenvolupeu un programa que permeti introduir la mesura en centímetres de la base i l'alçària d'un triangle…

Fonaments: tipus, variables i expressions

Desenvolupeu un programa que permeti introduir la mesura en centímetres de la base i l'alçària d'un triangle (com a quantitats reals) i en determini l'àrea resultant.

Enunciado: 10. Problema 10 (Bloc 1): Càlcul de l'àrea d'un t…

11. Problema 11 (Bloc 1): Perímetre i àrea d'un c…. Escriviu un programa que sol·liciti el radi d'un cercle en centímetres (valor real) i imprimeixi el perímetre…

Fonaments: tipus, variables i expressions

Escriviu un programa que sol·liciti el radi d'un cercle en centímetres (valor real) i imprimeixi el perímetre (longitud de la circumferència) i l'àrea del cercle.

Enunciado: 11. Problema 11 (Bloc 1): Perímetre i àrea d'un c…

12. Problema 12 (Bloc 1): Àrea d'un cercle des de…. Realitzeu un programa que calculi l'àrea d'un cercle tenint com a única dada d'entrada la longitud del seu…

Fonaments: tipus, variables i expressions

Realitzeu un programa que calculi l'àrea d'un cercle tenint com a única dada d'entrada la longitud del seu perímetre expressada en centímetres (valor real).

Enunciado: 12. Problema 12 (Bloc 1): Àrea d'un cercle des de…

13. Problema 13 (Bloc 1): Superfície de pantalla…. La diagonal d'un televisor s'expressa habitualment en polzades (1'' = 2,54 cm). Amb una relació d'aspecte…

Fonaments: tipus, variables i expressions

13. Problema 13 (Bloc 1): Superfície de pantalla segons la diagonal

La diagonal d'un televisor s'expressa habitualment en polzades (1′′=2,54 cm1'' = 2{,}54\text{ cm}). Amb una relació d'aspecte panoràmica estàndard d'amplada/alçada igual a 16/916/9, dissenyeu un programa que demani la longitud de la diagonal en polzades (nombre enter) i calculi la superfície de la pantalla expressada en cm2\text{cm}^2.

Enunciado: 13. Problema 13 (Bloc 1): Superfície de pantalla…

14. Problema 1 (Bloc 2): Intercanvi de valors ent…. Implementeu el patró d'intercanvi de variables en llenguatge C: llegiu dos enters des del teclat…

Fonaments: tipus, variables i expressions

14. Problema 1 (Bloc 2): Intercanvi de valors entre dues variables

Implementeu el patró d'intercanvi de variables en llenguatge C: llegiu dos enters des del teclat emmagatzemant-los a les variables a i b, intercanvieu llurs valors mitjançant una variable auxiliar i mostreu el resultat final de cadascuna.

Enunciado: 14. Problema 1 (Bloc 2): Intercanvi de valors ent…

15. Problema 2 (Bloc 2): Descomposició de segons…. Escriviu un programa que sol·liciti per teclat una quantitat de segons (enter natural n) i en calculi el…

Fonaments: tipus, variables i expressions

15. Problema 2 (Bloc 2): Descomposició de segons en hores i minuts

Escriviu un programa que sol·liciti per teclat una quantitat de segons (enter natural nn) i en calculi el desglossament equivalent expressat en hores, minuts i segons restants.

Enunciado: 15. Problema 2 (Bloc 2): Descomposició de segons…

16. Problema 3 (Bloc 2): Desglossament temporal a…. Amplieu la solució de l'exercici anterior de manera que el temps total en segons es desglossi jeràrquicament…

Fonaments: tipus, variables i expressions

16. Problema 3 (Bloc 2): Desglossament temporal amb dies i setmanes

Amplieu la solució de l'exercici anterior de manera que el temps total en segons es desglossi jeràrquicament en setmanes, dies, hores, minuts i segons.

Enunciado: 16. Problema 3 (Bloc 2): Desglossament temporal a…

17. Problema 4 (Bloc 2): Validació i conversió de…. Desenvolupeu un programa que demani per teclat un caràcter dígit decimal (entre '0' i '9'). El programa ha de…

Estructures de control condicionals

17. Problema 4 (Bloc 2): Validació i conversió de caràcter dígit

Desenvolupeu un programa que demani per teclat un caràcter dígit decimal (entre '0' i '9'). El programa ha de validar si efectivament es tracta d'un dígit i, en cas afirmatiu, mostrar el dígit introduït, el seu valor intern en la taula ASCII i el seu valor numèric enter corresponent. Si no ho és, ha d'emetre un advertiment d'error.

Enunciado: 17. Problema 4 (Bloc 2): Validació i conversió de…

18. Problema 5 (Bloc 2): Conversió de dígit hexad…. Creeu un programa en C que rebi per teclat un símbol que representi un dígit hexadecimal ('0'-'9', 'A'-'F' o…

Estructures de control condicionals

18 Problema 5 (Bloc 2): Conversió de dígit hexadecimal a enter

Creeu un programa que rebi per teclat un símbol que representi un dígit hexadecimal (caràcter entre '0' - '9', 'A' - 'F' o 'a' - 'f'). Mostreu el caràcter, el codi ASCII i el valor decimal equivalent en base 10. Si el caràcter no és vàlid, emeteu un missatge d'error.

Enunciado: 18. Problema 5 (Bloc 2): Conversió de dígit hexad…

19. Problema 6 (Bloc 2): Interpretació de codi AS…. Escriviu un programa en C que demani un nombre enter i mostri el caràcter ASCII associat si està entre 0 i…

Estructures de control condicionals

19 Problema 6 (Bloc 2): Interpretació de codi ASCII i rangs estesos

Escriviu un programa que demani un nombre enter comprès entre 0 i 127 i mostri el caràcter ASCII associat. Indiqueu a més com respondre si l'usuari introdueix un codi de la taula estesa (entre 128 i 255) o un valor fora d'ambdós rangs.

Enunciado: 19. Problema 6 (Bloc 2): Interpretació de codi AS…

20. Problema 7 (Bloc 2): Determinació del signe d…. Construïu un programa en C que demani un nombre enter i verifiqui si és estrictament positiu, estrictament…

Estructures de control condicionals

20 Problema 7 (Bloc 2): Determinació del signe d'un enter

Construïu un programa que demani un nombre enter per teclat i verifiqui si el número és estrictament positiu, estrictament negatiu o bé és zero.

Enunciado: 20. Problema 7 (Bloc 2): Determinació del signe d…

21. Problema 8 (Bloc 2): Determinació de mínim i…. Elaboreu un programa en C que demani tres nombres enters i determini el valor mínim i màxim de la terna.

Estructures de control condicionals

21 Problema 8 (Bloc 2): Determinació de mínim i màxim de tres enters

Elaboreu un programa que demani a l'usuari tres nombres enters i calculi quin és el valor més petit i quin és el valor més gran de la terna.

Enunciado: 21. Problema 8 (Bloc 2): Determinació de mínim i…

22. Problema 9a (Bloc 2): Càlcul de la part sence…. Dissenyeu un programa que demani tres valors enters per teclat i calculi la part sencera (truncament enter)…

Fonaments: tipus, variables i expressions

22. Problema 9a (Bloc 2): Càlcul de la part sencera de la mitjana

Dissenyeu un programa que demani tres valors enters per teclat i calculi la part sencera (truncament enter) de la mitjana aritmètica d'aquests tres nombres.

Enunciado: 22. Problema 9a (Bloc 2): Càlcul de la part sence…

23. Exercici P28. Mitjana de tres valors. Dissenyeu un programa en C que demani a l'usuari tres nombres decimals i mostri per pantalla la part sencera…

Fonaments: tipus, variables i expressions

23. Exercici P28. Mitjana de tres valors

Dissenyeu un programa en C que demani a l'usuari tres nombres decimals i mostri per pantalla la part sencera de la seva mitjana aritmètica.

Enunciado: 23. Exercici P28. Mitjana de tres valors

24. Exercici P29. Mínim, intermedi i màxim de tre…. Escriviu un programa que demani tres nombres enters i en determini el menor, el valor intermedi i el major…

Estructures de control condicionals

24. Exercici P29. Mínim, intermedi i màxim de tres valors

Escriviu un programa que demani tres nombres enters i en determini el menor, el valor intermedi i el major utilitzant exclusivament estructures condicionals.

Enunciado: 24. Exercici P29. Mínim, intermedi i màxim de tre…

25. Exercici P30. Quocient i residu bàsic. Elaboreu un programa que rebi dos enters (dividend i divisor), verifiqui que el divisor no sigui zero i…

Estructures de control condicionals

25. Exercici P30. Quocient i residu bàsic

Elaboreu un programa que rebi dos enters (dividend i divisor), verifiqui que el divisor no sigui zero i calculi el quocient i el residu de la divisió entera.

Enunciado: 25. Exercici P30. Quocient i residu bàsic

26. Exercici P31. Divisió entera amb residu no ne…. Implementeu la divisió entera euclidiana entre dos nombres enters x i y (y != 0) de manera que el residu r…

Estructures de control condicionals

26. Exercici P31. Divisió entera amb residu no negatiu

Implementeu la divisió entera euclidiana entre dos nombres enters xx i yy (y≠0y \neq 0) de manera que el residu rr compleixi sempre 0≤r<∣y∣0 \le r < |y|.

Enunciado: 26. Exercici P31. Divisió entera amb residu no ne…

27. Exercici P32. Equació de segon grau bàsica. Creeu un programa per calcular les solucions reals de l'equació ax^2 + bx + c = 0, tractant el cas lineal si…

Estructures de control condicionals

27. Exercici P32. Equació de segon grau bàsica

Creeu un programa per calcular les solucions reals de l'equació ax2+bx+c=0ax^2 + bx + c = 0, tractant el cas lineal si a=0a = 0.

Enunciado: 27. Exercici P32. Equació de segon grau bàsica

28. Exercici P33. Equació de segon grau amb arrel…. Amplieu la resolució d'equacions de segon grau per mostrar les solucions en forma de nombres complexos quan…

Estructures de control condicionals

28. Exercici P33. Equació de segon grau amb arrels complexes

Amplieu la resolució d'equacions de segon grau per mostrar les solucions en forma de nombres complexos quan el discriminant és estrictament negatiu.

Enunciado: 28. Exercici P33. Equació de segon grau amb arrel…

29. Exercici P34. Classificació i conversió de ca…. Llegiu un caràcter i feu servir funcions de ctype.h per: imprimir el codi ASCII si és dígit, alternar…

Estructures de control condicionals

29. Exercici P34. Classificació i conversió de caràcter

Llegiu un caràcter i feu servir funcions de ctype.h per: imprimir el codi ASCII si és dígit, alternar majúscula/minúscula si és lletra o indicar si és un espai o delimitador.

Enunciado: 29. Exercici P34. Classificació i conversió de ca…

30. Problema 1. Càlcul del factorial. Escriviu un programa en C que llegeixi un enter n >= 0 i calculi el factorial n! mitjançant un bucle iteratiu…

Bucles i disseny iteratiu

30. Problema 1. Càlcul del factorial

Escriviu un programa que llegeixi un enter n≥0n \ge 0 i calculi el factorial n!=∏k=1nkn! = \prod_{k=1}^n k, amb 0!=10! = 1.

Enunciado: 30. Problema 1. Càlcul del factorial

31. Problema 2. Suma dels enters a l'interval [a,…. Demanats dos enters a >= 0 i b >= 0, calculeu la suma acumulada de tots els nombres continguts a l'interval…

Bucles i disseny iteratiu

31. Problema 2. Suma dels enters a l'interval [a, b]

Demanats dos enters a≥0a \ge 0 i b≥0b \ge 0, calculeu la suma acumulada de tots els nombres continguts a l'interval [a,b][a, b]:∑k=abk\sum_{k=a}^b k

Enunciado: 31. Problema 2. Suma dels enters a l'interval [a,…

32. Problema 3. Producte mitjançant sumes success…. Calculeu el producte de dos valors enters a, b >= 0 fent servir únicament l'operació de suma.

Bucles i disseny iteratiu

32. Problema 3. Producte mitjançant sumes successives

Calculeu el producte de dos valors enters a,b≥0a, b \ge 0 fent servir únicament l'operació de suma.

Enunciado: 32. Problema 3. Producte mitjançant sumes success…

33. Problema 4. Càlcul de la potència per multipl…. Escriviu un programa que calculi la potència a^b (a, b >= 0) mitjançant multiplicacions, considerant la…

Bucles i disseny iteratiu

33. Problema 4. Càlcul de la potència per multiplicacions

Escriviu un programa que calculi la potència aba^b (a,b≥0a, b \ge 0) mitjançant multiplicacions. Considereu el cas d'indeterminació quan 000^0.

Enunciado: 33. Problema 4. Càlcul de la potència per multipl…

34. Problema 5. Divisió entera mitjançant restes. Calculeu el quocient i el residu de la divisió entera entre a >= 0 i b > 0 utilitzant exclusivament restes…

Bucles i disseny iteratiu

34. Problema 5. Divisió entera mitjançant restes

Calculeu el quocient i el residu de la divisió entera entre a≥0a \ge 0 i b>0b > 0 utilitzant exclusivament restes successives.

Enunciado: 34. Problema 5. Divisió entera mitjançant restes

35. Problema 6. Multiplicació d'enters consideran…. Modifiqueu el càlcul del producte mitjançant sumes/restes perquè funcioni correctament quan els enters puguin…

Bucles i disseny iteratiu

35 Problema 6. Multiplicació d'enters considerant el signe

Modifiqueu el càlcul del producte mitjançant sumes/restes perquè funcioni correctament quan els enters puguin ser negatius.

Enunciado: 35. Problema 6. Multiplicació d'enters consideran…

36. Problema 7. Cadena numèrica a decimal. Llegiu caràcter a caràcter una seqüència de dígits acabada en salt de línia ('\n') i convertiu-la al…

Bucles i disseny iteratiu

36 Problema 7. Cadena numèrica a decimal

Llegiu caràcter a caràcter una seqüència de dígits acabada en salt de línia ( '\n') i convertiu-la al corresponent valor enter int. Mostreu error si apareix un caràcter no numèric.

Enunciado: 36. Problema 7. Cadena numèrica a decimal

37. Problema 8. Cadena binària a decimal. Llegiu una cadena de caràcters '0' i '1' acabada en '\n' i transformeu-la al seu valor decimal enter…

Bucles i disseny iteratiu

37 Problema 8. Cadena binària a decimal

Llegiu una cadena de caràcters '0' i '1' acabada en '\n' i transformeu-la al seu valor decimal enter utilitzant la base 2.

Enunciado: 37. Problema 8. Cadena binària a decimal

38. Problema 9. Comptar caràcters d'un text. Elaboreu un programa que llegeixi una seqüència de caràcters acabada en punt ( '.' ) i calculi el nombre…

Bucles i disseny iteratiu

38 Problema 9. Comptar caràcters d'un text

Elaboreu un programa que llegeixi una seqüència de caràcters acabada en punt ( '.') i calculi el nombre total de caràcters processats.

Enunciado: 38. Problema 9. Comptar caràcters d'un text

39. Problema 10. Recompte de caràcters segons tip…. Donat un text finalitzat en '.', comptabilitzeu quants espais en blanc conté, quantes lletres majúscules,…

Bucles i disseny iteratiu

39. Problema 10. Recompte de caràcters segons tipus

Donat un text finalitzat en '.', comptabilitzeu quants espais en blanc conté, quantes lletres majúscules, quantes minúscules i quants dígits.

Enunciado: 39. Problema 10. Recompte de caràcters segons tip…

40. Problema 11. Ocurrències del primer caràcter. Llegiu un text que acaba en punt i determineu quantes vegades es repeteix al llarg del text el caràcter amb…

Bucles i disseny iteratiu

Llegiu un text que acaba en punt i determineu quantes vegades es repeteix al llarg del text el caràcter amb el qual s'inicia la seqüència.

Enunciado: 40. Problema 11. Ocurrències del primer caràcter

41. Problema 12. Eliminació d'espais i delimitado…. Llegiu un text acabat en punt i reimprimiu-lo per la sortida estàndard ometent qualsevol espai en blanc,…

Bucles i disseny iteratiu

Llegiu un text acabat en punt i reimprimiu-lo per la sortida estàndard ometent qualsevol espai en blanc, tabulador o caràcter de nova línia.

Enunciado: 41. Problema 12. Eliminació d'espais i delimitado…

42. Problema 13. Inversió de caixa de lletres. Programeu un filtre de text acabat en punt que converteixi cada lletra majúscula en minúscula i cada…

Bucles i disseny iteratiu

Programeu un filtre de text acabat en punt que converteixi cada lletra majúscula en minúscula i cada minúscula en majúscula, deixant la resta de caràcters inalterats.

Enunciado: 42. Problema 13. Inversió de caixa de lletres

43. Problema 14. Comptar valors positius fins a z…. Llegiu una seqüència de nombres enters que finalitza amb el valor zero. Mostreu quants nombres estrictament…

Bucles i disseny iteratiu

Llegiu una seqüència de nombres enters que finalitza amb el valor zero. Mostreu quants nombres estrictament positius s'hi han introduït.

Enunciado: 43. Problema 14. Comptar valors positius fins a z…

44. Problema 15. Mitjana aritmètica de seqüència…. Calculeu la mitjana aritmètica d'una sèrie de nombres en coma flotant finalitzada pel valor 0.0. Si la sèrie…

Bucles i disseny iteratiu

44. Problema 15. Mitjana aritmètica de seqüència real

Calculeu la mitjana aritmètica d'una sèrie de nombres en coma flotant finalitzada pel valor 0.0. Si la sèrie és buida, mostreu un missatge avisant de l'absència de dades.

Enunciado: 44. Problema 15. Mitjana aritmètica de seqüència…

45. Problema 16. Màxim comú divisor per cerca exh…. Llegiu dos enters positius a, b > 0 i trobeu el seu màxim comú divisor cercant de forma descendent a partir…

Bucles i disseny iteratiu

45. Problema 16. Màxim comú divisor per cerca exhaustiva

Llegiu dos enters positius a,b>0a, b > 0 i trobeu el seu màxim comú divisor cercant de forma descendent a partir del mínim d'ambdós nombres.

Enunciado: 45. Problema 16. Màxim comú divisor per cerca exh…

46. Problema 17. Màxim comú divisor mitjançant Eu…. Implementeu el càlcul del mcd(a, b) per a a, b > 0 aplicant el teorema d'Euclides basat en restes successives…

Bucles i disseny iteratiu

46. Problema 17. Màxim comú divisor mitjançant Euclides

Implementeu el càlcul del mcd(a,b)\text{mcd}(a, b) (a,b>0a, b > 0) aplicant el teorema d'Euclides:

mcd(a,b)=a\text{mcd}(a, b) = a si a=ba = b.

mcd(a,b)=mcd(a−b,b)\text{mcd}(a, b) = \text{mcd}(a - b, b) si a>ba > b.

mcd(a,b)=mcd(a,b−a)\text{mcd}(a, b) = \text{mcd}(a, b - a) si a<ba < b.

Enunciado: 46. Problema 17. Màxim comú divisor mitjançant Eu…

47. Problema 1 (Cerca). Comprovació de quadrat pe…. Escriviu un programa que determini si un nombre enter n >= 0 és un quadrat perfecte (és a dir, si existeix k…

Bucles i disseny iteratiu

47. Problema 1 (Cerca). Comprovació de quadrat perfecte

Escriviu un programa que determini si un nombre enter n≥0n \ge 0 és un quadrat perfecte (és a dir, si existeix kk enter tal que n=k2n = k^2).

Enunciado: 47. Problema 1 (Cerca). Comprovació de quadrat pe…

48. Problema 2 (Cerca). Test de primalitat. Implementeu un algorisme en C per comprovar si un enter n > 1 és un nombre primer verificant la inexistència…

Bucles i disseny iteratiu

48. Problema 2 (Cerca). Test de primalitat

Implementeu un algorisme per comprovar si un enter n>1n > 1 és un nombre primer verificant la inexistència de divisors kk tals que 1<k≤n1 < k \le \sqrt{n}.

Enunciado: 48. Problema 2 (Cerca). Test de primalitat

49. Problema 3 (Cerca). Existència de dígits al t…. Donat un text acabat en punt ( '.' ), determineu mitjançant un esquema de cerca si conté com a mínim un dígit.

Bucles i disseny iteratiu

49. Problema 3 (Cerca). Existència de dígits al text

Donat un text acabat en punt ( '.'), determineu mitjançant un esquema de cerca si conté com a mínim un dígit.

Enunciado: 49. Problema 3 (Cerca). Existència de dígits al t…

50. Problema 4 (Cerca). Repetició del primer carà…. En un text finalitzat en punt, esbrineu si el primer caràcter es torna a repetir en alguna altra posició de…

Bucles i disseny iteratiu

50. Problema 4 (Cerca). Repetició del primer caràcter

En un text finalitzat en punt, esbrineu si el primer caràcter es torna a repetir en alguna altra posició de la seqüència.

Enunciado: 50. Problema 4 (Cerca). Repetició del primer carà…

51. Problema 5 (Cerca). Text completament en majú…. Implementeu un programa que verifiqui si totes les lletres presents en un text acabat en punt estan escrites…

Bucles i disseny iteratiu

51. Problema 5 (Cerca). Text completament en majúscules

Implementeu un programa que verifiqui si totes les lletres presents en un text acabat en punt estan escrites en majúscules.

Enunciado: 51. Problema 5 (Cerca). Text completament en majú…

52. Problema 6 (Cerca). Seqüència d'enters exclus…. Comproveu si una seqüència de nombres enters finalitzada en zero està composta únicament per valors…

Bucles i disseny iteratiu

52. Problema 6 (Cerca). Seqüència d'enters exclusivament positius

Comproveu si una seqüència de nombres enters finalitzada en zero està composta únicament per valors estrictament positius.

Enunciado: 52. Problema 6 (Cerca). Seqüència d'enters exclus…

53. Exercici 1. Quadrat perfecte d'un enter. Desenvolupeu un programa en llenguatge C que llegeixi un enter per teclat i determini si es tracta d'un…

Bucles i disseny iteratiu

53. Exercici 1. Quadrat perfecte d'un enter

Desenvolupeu un programa en llenguatge C que llegeixi un enter per teclat i determini si es tracta d'un quadrat perfecte (és a dir, si existeix un nombre enter positiu o nul kk tal que k2=nk^2 = n). En cas afirmatiu, cal mostrar el valor de l'arrel.

Enunciado: 53. Exercici 1. Quadrat perfecte d'un enter

54. Exercici 2. Comprovació de nombre primer. Dissenyeu un programa en C que sol·liciti a l'usuari un enter n i verifiqui si és primer. Si no ho és, el…

Bucles i disseny iteratiu

54. Exercici 2. Comprovació de nombre primer

Dissenyeu un programa en C que sol·liciti a l'usuari un enter nn i verifiqui si és primer. Si no ho és, el programa ha d'indicar algun divisor que ho justifiqui.

Enunciado: 54. Exercici 2. Comprovació de nombre primer

55. Exercici 3. Presència de dígits en un text. Elaboreu un programa que analitzi un flux de caràcters introduït per l'usuari i finalitzat amb un punt ('.').…

Bucles i disseny iteratiu

55. Exercici 3. Presència de dígits en un text

Elaboreu un programa que analitzi un flux de caràcters introduït per l'usuari i finalitzat amb un punt ( '.'). El programa ha d'establir si en el text hi apareix almenys un caràcter numèric entre '0' i '9'.

Enunciado: 55. Exercici 3. Presència de dígits en un text

56. Exercici 4. Repetició del primer caràcter. Escriure un programa que llegeixi una seqüència de caràcters acabada en un punt i determini si el caràcter…

Bucles i disseny iteratiu

56. Exercici 4. Repetició del primer caràcter

Escriure un programa que llegeixi una seqüència de caràcters acabada en un punt i determini si el caràcter inicial es repeteix en algun punt posterior de la mateixa seqüència.

Enunciado: 56. Exercici 4. Repetició del primer caràcter

57. Exercici 5. Comprovació de text en majúscules. Desenvolupeu un programa en C que rebi caràcters fins a trobar un punt i determini si la totalitat de les…

Bucles i disseny iteratiu

57. Exercici 5. Comprovació de text en majúscules

Desenvolupeu un programa que rebi caràcters fins a trobar un punt i determini si la totalitat de les lletres del text han estat introduïdes en majúscules (és a dir, que no contingui cap lletra minúscula).

Enunciado: 57. Exercici 5. Comprovació de text en majúscules

58. Exercici 6. Seqüència d'enters exclusivament…. Feu un programa en C que processi una seqüència de valors enters finalitzada amb el número 0 i verifiqui si…

Bucles i disseny iteratiu

58 Exercici 6. Seqüència d'enters exclusivament positius

Feu un programa en C que processi una seqüència de valors enters finalitzada amb el número 0 i verifiqui si està constituïda exclusivament per nombres estrictament positius (superiors a zero).

Enunciado: 58. Exercici 6. Seqüència d'enters exclusivament…

59. Problema 7. Valor parell en seqüència. Donada una seqüència de valors enters que finalitza amb el sentinella 0, programeu una solució que determini…

Bucles i disseny iteratiu

59 Problema 7. Valor parell en seqüència

Donada una seqüència de valors enters que finalitza amb el sentinella 0, programeu una solució que determini si a la sèrie hi ha com a mínim un valor parell.

Enunciado: 59. Problema 7. Valor parell en seqüència

60. Problema 8. Múltiple de 3 en seqüència. Implementeu un programa en C que rebi una seqüència d'enters acabada en 0 i indiqui si conté algun element…

Bucles i disseny iteratiu

60 Problema 8. Múltiple de 3 en seqüència

Implementeu un programa en C que rebi una seqüència d'enters acabada en 0 i indiqui si conté algun element que sigui múltiple de 3.

Enunciado: 60. Problema 8. Múltiple de 3 en seqüència

61. Problema 9. Quadrat perfecte en seqüència. Escriviu un programa en C que llegeixi una seqüència d'enters positius finalitzada en zero i comprovi si…

Bucles i disseny iteratiu

61 Problema 9. Quadrat perfecte en seqüència

Escriviu un programa en C que llegeixi una seqüència d'enters positius finalitzada en zero i comprovi si algun dels elements és un quadrat perfecte.

Enunciado: 61. Problema 9. Quadrat perfecte en seqüència

62. Problema 10. Nombre primer en seqüència. Implementeu un programa que recorri una successió de valors enters acabada en zero i determini si conté…

Bucles i disseny iteratiu

62. Problema 10. Nombre primer en seqüència

Implementeu un programa que recorri una successió de valors enters acabada en zero i determini si conté almenys un nombre primer.

Enunciado: 62. Problema 10. Nombre primer en seqüència

63. Problema 1 (Taules). Freqüència de lletres. Construïu un programa que rebi per teclat un text acabat en un punt ( '.' ) i calculi quantes vegades apareix…

Vectors i matrius

63. Problema 1 (Taules). Freqüència de lletres

Construïu un programa que rebi per teclat un text acabat en un punt ( '.') i calculi quantes vegades apareix cadascuna de les lletres de l'alfabet (sense distingir entre majúscules i minúscules). Mostreu únicament aquelles lletres que s'hagin repetit com a mínim una vegada.

Enunciado: 63. Problema 1 (Taules). Freqüència de lletres

64. Problema 2 (Taules). Freqüència de dígits. Implementeu un programa que llegeixi una seqüència de caràcters acabada en un punt i comptabilitzi el nombre…

Vectors i matrius

64. Problema 2 (Taules). Freqüència de dígits

Implementeu un programa que llegeixi una seqüència de caràcters acabada en un punt i comptabilitzi el nombre d'aparicions de cadascun dels dígits del 0 al 9.

Enunciado: 64. Problema 2 (Taules). Freqüència de dígits

65. Problema 3 (Taules). Detecció de cap-i-cua. Dissenyeu un programa que emmagatzemi una seqüència de caràcters d'una longitud màxima de 20 elements…

Cadenes de caràcters

65. Problema 3 (Taules). Detecció de cap-i-cua

Dissenyeu un programa que emmagatzemi una seqüència de caràcters d'una longitud màxima de 20 elements (finalitzada amb un salt de línia '\n') i determini si forma una paraula o frase cap-i-cua (palíndrom).

Enunciado: 65. Problema 3 (Taules). Detecció de cap-i-cua

66. Problema 4 (Taules). Inversió d'una cadena. Desenvolupeu un programa en C que llegeixi una seqüència de com a màxim 20 caràcters acabada en '\n' i en…

Cadenes de caràcters

66. Problema 4 (Taules). Inversió d'una cadena

Desenvolupeu un programa que llegeixi una seqüència de caràcters de com a màxim 20 caràcters acabada amb retorn de carro ( '\n') i en mostri per pantalla la representació invertida.

Enunciado: 66. Problema 4 (Taules). Inversió d'una cadena

67. Problema 5 (Taules). Comparació d'igualtat de…. Programeu una solució en C que llegeixi dues seqüències de caràcters (de longitud màxima 20 cadascuna,…

Cadenes de caràcters

67. Problema 5 (Taules). Comparació d'igualtat de cadenes

Programeu una solució en C que llegeixi dues seqüències de caràcters (de longitud màxima 20 cadascuna, acabades en '\n') i compari si són exactament iguals. No es permet l'ús de la funció strcmp ni de la llibreria <string.h>.

Enunciado: 67. Problema 5 (Taules). Comparació d'igualtat de…

68. Problema 6 (Taules). Comprovació de prefix. Escriure un programa que llegeixi dues seqüències de caràcters de longitud màxima 20 acabades en '\n' i…

Cadenes de caràcters

68. Problema 6 (Taules). Comprovació de prefix

Escriure un programa que llegeixi dues seqüències de caràcters de longitud màxima 20 acabades en '\n' i verifiqui si la primera cadena és prefix de la segona. Està prohibit utilitzar funcions de <string.h>.

Enunciado: 68. Problema 6 (Taules). Comprovació de prefix

69. Problema 7 (Taules). Comprovació de sufix. Dissenyeu un programa en C per determinar si una primera cadena de caràcters és sufix d'una segona cadena…

Cadenes de caràcters

69. Problema 7 (Taules). Comprovació de sufix

Dissenyeu un programa en C per determinar si una primera cadena de caràcters és sufix d'una segona cadena (totes dues de longitud màxima 20 i finalitzades en salt de línia). No es pot fer servir la llibreria <string.h>.

Enunciado: 69. Problema 7 (Taules). Comprovació de sufix

70. Problema 8 (Taules). Cerca de subcadena conti…. Desenvolupeu un algorisme que llegeixi dues cadenes de caràcters (longitud màxima 20 acabades en '\n') i…

Cadenes de caràcters

70. Problema 8 (Taules). Cerca de subcadena continguda

Desenvolupeu un algorisme que llegeixi dues cadenes de caràcters (longitud màxima 20 acabades en '\n') i avaluï si la primera es troba continguda dins de la segona. Si és així, indiqueu a partir de quin índex comença. No es permet usar <string.h>.

Enunciado: 70. Problema 8 (Taules). Cerca de subcadena conti…

71. Problema 9 (Taules). Comprovació de cadenes i…. Escriure un programa en C que llegeixi dues seqüències de caràcters acabades en salt de línia (màxim 20…

Cadenes de caràcters

71 Problema 9 (Taules). Comprovació de cadenes inverses

Escriure un programa que llegeixi dues seqüències de caràcters acabades en salt de línia (màxim 20 caràcters cadascuna) i determini si la primera cadena és exactament la inversió de la segona.

Enunciado: 71. Problema 9 (Taules). Comprovació de cadenes i…

72. Problema 10. Permutació de dues seqüències de…. Desenvolupeu un programa en C que sol·liciti per teclat dues successions de caràcters acabades en punt (límit…

Cadenes de caràcters

72 Problema 10. Permutació de dues seqüències de caràcters

Desenvolupeu un programa en C que sol·liciti per teclat dues successions de caràcters que finalitzin obligatòriament amb un punt ( '.'). Cadascuna pot encabir un límit de 20 caràcters abans del punt.

El programa ha de complir els següents requisits:

Si qualsevol de les dues cadenes sobrepassa el límit màxim de 20 caràcters, cal informar d'un error pel canal d'error estàndard ( stderr) indicant la capacitat màxima de 20 i retornar el codi d'error -1.

Si les dues seqüències tenen mides distintes, s'ha d'imprimir que les seqüències tenen diferent mida juntament amb els seus valors numèrics.

Si tenen la mateixa mida, cal comprovar si una seqüència constitueix una permutació de l'altra (és a dir, si posseeixen exactament les mateixes lletres i caràcters amb idèntiques freqüències d'aparició, sense importar l'ordre). Informeu per pantalla si són o no permutació.

Enunciado: 72. Problema 10. Permutació de dues seqüències de…

73. Problema 11. Subseqüència creixent més llarga…. Escriviu un programa en C per trobar la subseqüència creixent contigua més llarga d'una sèrie d'enters…

Vectors i matrius

73 Problema 11. Subseqüència creixent més llarga d'enters

Escriviu un programa en C que permeti introduir des del teclat una seqüència de valors enters acabada en 0. L'objectiu és identificar la subseqüència contigua d'elements ordenats de forma creixent (o no decreixent) més extensa que contingui la sèrie, amb un espai màxim reservat de 50 enters.

Condicions d'execució:

Si el primer valor facilitat és directament el zero, s'ha d'avisar indicant "Seqüència buida." i finalitzar l'execució amb èxit.

Quan la seqüència conté valors, cal anar acumulant els nombres que mantinguin la propietat vk≥vk−1v_k \ge v_{k-1}. En trencar-se la condició creixent o en finalitzar la lectura, s'ha de comprovar si el segment actual supera la llargada del màxim registrat fins aleshores.

Finalment, imprimiu la subseqüència més llarga trobada.

Enunciado: 73. Problema 11. Subseqüència creixent més llarga…

74. Problema 12. Element igual a la suma dels pre…. Dissenyeu un programa en C que cerca el primer element d'una sèrie d'enters acabada en 0 que sigui igual a la…

Vectors i matrius

74 Problema 12. Element igual a la suma dels precedents

Dissenyeu un programa en C que rebi mitjançant el teclat una llista d'enters que culmina amb el dígit 0, suportant com a màxim 100 nombres emmagatzemats en memòria.

El programa ha de cercar si existeix algun nombre a la sèrie el valor del qual sigui exactament la suma acumulada de tots els elements que l'han precedit. El procés de lectura ha de finalitzar en trobar el primer element que verifiqui aquesta igualtat o bé quan s'introdueixi el 0:

Si es detecta aquest enter, mostreu la igualtat desglossada: valor1+valor2+...+valorN=suma.

En cas que s'arribi al sentinella 0 sense haver trobat cap coincidència, s'ha d'emetre el missatge: "No hi ha cap nombre que sigui la suma de tots els previs.".

Enunciado: 74. Problema 12. Element igual a la suma dels pre…

75. Problema 13. Conversió numèrica a binari i oc…. Desenvolupeu un programa en C que converteix un valor enter de tipus long long a binari (base 2) i octal…

Vectors i matrius

75 Problema 13. Conversió numèrica a binari i octal

Desenvolupeu un programa en C que demani a l'usuari un valor enter de tipus long long en base decimal i en mostri la conversió tant a sistema binari (base 2) com a sistema octal (base 8).

Requisits:

Tractament del cas 0: ha de mostrar immediatament 0 per a ambdues bases.

Tractament de valors negatius: cal emmagatzemar el signe negatiu, treballar amb el mòdul del nombre i imprimir un guió - precedint la sortida.

Utilitzeu una taula de caràcters de mida 63 per anar desant els residus obtinguts de les divisions successives i, posteriorment, imprimiu els dígits en l'ordre contrari al de generació.

Enunciado: 75. Problema 13. Conversió numèrica a binari i oc…

76. Strings - Problema 1. Càlcul de la longitud d…. Elaborar un programa en C que llegeixi una cadena de caràcters fins al salt de línia amb un màxim de 20…

Cadenes de caràcters

76. Strings - Problema 1. Càlcul de la longitud d'una cadena

Elaboreu un programa en llenguatge C que llegeixi una cadena de caràcters introduïda pel teclat que acabi en salt de línia ('\n'), amb una capacitat màxima de 20 caràcters significatius. Cal determinar la seva llargada fent ús de les rutines de la capçalera estàndard <string.h> (particularment la funció strlen).

Considereu que si la seqüència té més de 20 caràcters, cal advertir d'aquest excés i descartar la resta de l'entrada fins a arribar al salt de línia abans de finalitzar la cadena amb el caràcter nul '\0'.

Enunciado: 76. Strings - Problema 1. Càlcul de la longitud d…

77. Strings - Problema 2. Verificació d'igualtat…. Dissenyeu un programa en C que llegeixi dues cadenes de text (fins a 20 caràcters cadascuna, acabades en…

Cadenes de caràcters

77. Strings - Problema 2. Verificació d'igualtat entre dues cadenes

Dissenyeu un programa en C que rebi de l'usuari dues seqüències de caràcters (ambdues d'un màxim de 20 caràcters i concloses per un salt de línia) i estableixi si són completament iguals utilitzant les funcions disponibles a <string.h> (específicament strcmp).

En ambdues cadenes s'ha de comprovar si es sobrepassa la mida màxima establerta (20 caràcters) i, si és el cas, netejar el sobrant fins al següent salt de línia.

Enunciado: 77. Strings - Problema 2. Verificació d'igualtat…

78. Strings - Problema 3. Comparació de l'ordre l…. Escriure un programa en C que llegeixi dues cadenes de text (fins a 20 caràcters) i compari el seu ordre…

Cadenes de caràcters

78. Strings - Problema 3. Comparació de l'ordre lexicogràfic

Escriure una aplicació en C que capture dues cadenes de text (ambdues d'una mida no superior a 20 caràcters i que acabin amb un salt de línia) i compari la seva ordenació lexicogràfica mitjançant la utilització de strcmp de <string.h>.

El programa haurà de reflectir quin dels tres casos següents es compleix: La primera seqüència és lexicogràficament més gran que la segona.

La primera seqüència és lexicogràficament més petita que la segona.

Ambdues seqüències són idèntiques.

Enunciado: 78. Strings - Problema 3. Comparació de l'ordre l…

79. Strings - Problema 4. Ordenació lexicogràfica…. Desenvolupeu un programa en C capaç de llegir tres cadenes de caràcters (màxim 20 caràcters) i mostrar-les…

Punters i gestió de memòria

79. Strings - Problema 4. Ordenació lexicogràfica de tres cadenes

Desenvolupeu un programa en C capaç de llegir tres cadenes de caràcters independents (de com a molt 20 caràcters cadascuna, acabades en un salt de línia) i mostrar-les ordenades alfabèticament de menor a major segons l'ordre lexicogràfic.

Per realitzar la reordenació de manera eficient, utilitzeu punters auxiliars a cada cadena per permutar les adreces de memòria sense haver de copiar manualment les cadenes senceres.

Enunciado: 79. Strings - Problema 4. Ordenació lexicogràfica…

80. Strings - Problema 5. Concatenació bàsica de…. Programeu en C una rutina que llegeixi dues cadenes de fins a 20 caràcters i en construeixi una tercera…

Cadenes de caràcters

80. Strings - Problema 5. Concatenació bàsica de cadenes

Programeu en C una rutina que admeti dues cadenes de text per teclat (fins a 20 símbols cadascuna, acabades en '\n') i construeixi una tercera cadena resultant de concatenar la primera amb la segona, fent servir strcpy i strcat de la biblioteca <string.h>.

Assegureu-vos que el vector de caràcters destí tingui una mida suficient (com a mínim 2×20+12 \times 20 + 1) per evitar un desbordament de buffer.

Enunciado: 80. Strings - Problema 5. Concatenació bàsica de…

81. Strings - Problema 6. Comprovació de prefix e…. Escriure un codi en C que llegeixi dues cadenes de fins a 20 caràcters finalitzades en salt de línia i avaluï…

Cadenes de caràcters

81 Strings - Problema 6. Comprovació de prefix entre dues cadenes

Escriure un codi en C que llegeixi dues cadenes de fins a 20 elements finalitzades en salt de línia i avaluï si la més curta és un prefix de la més llarga.

Per dur a terme aquesta comprovació s'ha d'utilitzar la funció strncmp de <string.h>, comparant únicament el nombre de caràcters que conté la cadena de menor longitud.

Enunciado: 81. Strings - Problema 6. Comprovació de prefix e…

82. Strings - Problema 7. Detecció i posició d'un…. Construïu un programa en C que demani dues cadenes de fins a 20 caràcters acabades en salt de línia i…

Cadenes de caràcters

82 Strings - Problema 7. Detecció i posició d'una subcadena continguda

Construïu un programa en C que rebi dues seqüències de text de 20 caràcters com a màxim (delimitades per un canvi de línia) i verifiqui si la primera cadena apareix continguda dins de la segona.

Cal fer servir la funció strstr de <string.h>:

Si la cerca té èxit (retorna un punter no nul), cal determinar l'índex o posició base a partir de la qual està continguda fent servir aritmètica de punters (restant l'adreça retornada de l'adreça inicial del vector).

Si no hi és continguda (retorn de punter nul), s'ha de reportar aquest fet.

Enunciado: 82. Strings - Problema 7. Detecció i posició d'un…

83. Strings - Problema 8. Comprovació de sufix en…. Desenvolupeu un programa en C que demani dues cadenes de text de fins a 20 caràcters acabades en salt de…

Cadenes de caràcters

83 Strings - Problema 8. Comprovació de sufix entre dues cadenes

Desenvolupeu un programa en C que demani dues cadenes de text (cadascuna de llargada màxima 20 i finalitzades en salt de línia) i estableixi si la primera cadena actua com a sufix de la segona.

Requeriments d'implementació:

Si la primera seqüència és més extensa que la segona, s'ha d'indicar que no pot ser-ne sufix perquè és massa llarga.

Si la seva longitud és menor o igual, utilitzeu la funció strlen per calcular el desplaçament d'inici del sufix i compareu la secció final de la segona cadena amb la primera emprant strcmp.

Enunciado: 83. Strings - Problema 8. Comprovació de sufix en…

84. Strings - Problema 9. Concatenació de les cad…. Escriviu un programa en C que llegeixi dues cadenes de fins a 20 caràcters acabades en salt de línia, i…

Cadenes de caràcters

84 Strings - Problema 9. Concatenació de les cadenes invertides

Escriviu un programa en llenguatge C que llegeixi dues cadenes de fins a 20 caràcters cadascuna que acaben en salt de línia. El programa ha de generar i imprimir una nova cadena resultant de concatenar la inversa de la primera cadena amb la inversa de la segona cadena.

Assegureu-vos de reservar la memòria requerida per a la cadena de sortida (2×20+12 \times 20 + 1 caràcters) i d'inserir correctament el caràcter terminador '\0'.

Enunciado: 84. Strings - Problema 9. Concatenació de les cad…

Resuélvelo aquí mismo: corrección automática, pistas y solución paso a paso.

Més apunts de Programació I

Exàmens, temes i apunts de Programació I