Você está na página 1de 6

Programao

Folha Prtica 8
Lab. 8

Departamento de Informtica
Universidade da Beira Interior
Portugal
Copyright 2010 All rights reserved.

LAB. 8

8 semana

SUBPROGRAMAS+STRINGS
1. Reviso.
2. Objectivos.
3. Exerccios

Lab. 8
SUBPROGRAMAS e STRINGS

1.

Reviso

1. Subprogramas:
1.1. Passagem de parmetros.
2. Arrays:
2.1. Unidimensionais (SEQUNCIAS).
2.2. Bidimensionais (TABELAS).
2.3. Multidimensionais (dimenso > 2).
2.4. Tipos de dados compostos por apenas um tipo de dados (simples ou
composto).
3. Strings:
3.1. Arrays unidimensionais de caracteres + carcter terminador

2.

Objectivos

No final deste mdulo prtico, o aluno deve ser capaz de:


1. Programar em C usando strings e recorrendo utilizao de subprogramas.
2. Fez eficaz a analisar um problema e decomp-lo em sub-problemas, cada um dos
quais dar origem a um algoritmo e a uma funo.

3.

Exerccios

Exerccio 8.1 (Leitura e escrita de uma cadeia de caracteres)


Escreva um programa em C com os seguintes passos:
1. ler uma string a partir do teclado;
2. escrever no ecr a string lida anteriormente.

Exerccio 8.2 (Comprimento de uma cadeia de caracteres)


Escreva um programa em C com os seguintes passos:
1. ler uma string a partir do teclado;
2. calcular o comprimento da string atravs dum subprograma;
3. escrever no ecr o comprimento da string.

Exerccio 8.3 (Re-escrita de uma cadeia de caracteres em maisculas)


Escreva um programa que, dada uma string, teste se cada carcter uma letra e, em caso afirmativo,
converta a letra na sua maiscula. Por exemplo, O mote e o poeta sao 2 faces da mesma moeda
convertida em O MOTE E O POETA SAO 2 FACES DA MESMA MOEDA.

Exerccio 8.4 (Sub-cadeia de caracteres)


Escreva um programa que verifique que uma string substring doutra. Por exemplo, ver uma
substring de universo.

Exerccio 8.5 (Inverso de cadeira de caracteres)


Escreva um programa em C com os seguintes passos:
1. ler uma string a partir do teclado;
2. inverter a string atravs dum subprograma;
3. escrever no ecr a string invertida.

Exerccio 8.6 (N de dgitos de uma cadeia de caracteres)


Escreva um programa em C com os seguintes passos:
1. ler uma string a partir do teclado;
2. ler o nmero de dgitos existentes na string atravs dum subprograma;
3. escrever no ecr o nmero de dgitos existentes na string .

Exerccio 8.7 (Concatenao de duas cadeias de caracteres)


Escreva um programa em C com os seguintes passos:
1. ler duas strings a partir do teclado;
2. concatenar as duas strings atravs dum subprograma;
3. escrever no ecr a string composta.

Exerccio 8.8 (Capicua)


Escreva um programa em C com os seguintes passos:
1. ler uma string a partir do teclado;
2. verificar se a string capicua atravs dum subprograma;
3. escrever no ecr a string com a indicao de que ou no capicua.

Exerccio 8.9 (Cpia de cadeia de caracteres)


Escreva um programa em C com os seguintes passos:
1. ler duas strings a partir do teclado;
2. copiar a segunda string para a primeira string atravs dum subprograma;
3. escrever no ecr a primeira string alterada.

Exerccio 8.10 (N de ocorrncias de um carcter numa cadeia)


Escreva um programa em C com os seguintes passos:
1. ler um carcter a partir do teclado;
2. ler uma string a partir do teclado;
3. determinar o nmero de ocorrncias do carcter na string atravs dum subprograma;
4. escrever no ecr o dito nmero de ocorrncias.

Exerccio 8.11 (Eliminao de carcter de uma cadeia)


Escreva um programa em C com os seguintes passos:
1. ler um carcter a partir do teclado;
2. ler uma string a partir do teclado;
3. apagar todas as ocorrncias do carcter na string atravs dum subprograma;
4. escrever no ecr a string alterada.
Nota: apagar um carcter duma string no significa substitui-lo por um carcter em branco. O
apagamento dum carcter implica que os caracteres subsequentes passaro a ser indexados pelo ndice
anterior decrementado de 1.

Exerccio 8.12 (Miscelnea)


Escreva as seguintes funes:
1. int strcounta(char *s)
Descrio: Devolve o n de caracteres alfabticos em s.
2. char *strlower(char *s)
Descrio: Coloca todos os caracteres de s em minsculas.
3. char *strset(char *s, char ch, int n)
Descrio: Coloca o carcter ch apenas nas n posies iniciais da string s.
4. int strwords(char *s)
Descrio: Devolve o n de palavras duma string s.
5. int strpack(char *s)
Descrio: Recebe uma string s e compacta num nico carcter qualquer conjunto de caracteres
repetidos consecutivos.
Exemplo: strpack(Arremesso) tem Aremeso como resultado.
6. int strwords(char *s)
Descrio: Devolve o n de palavras duma string s.

Você também pode gostar