2
universidade federal do rio grande do norte escola de ciˆ encias e tecnologia ECT1203 – Linguagem de Programa¸c˜ ao – 2015.1 Prof. Einstein Santos Atividades pr´ aticas 07 1. Escreva um programa em C++ que leia o nome completo de uma pessoa, armazenando-o em um vetor de caracteres. O programa deve exibir o nome lido de tr´ as para frente. 2. Implemente um programa em C++ que leia o nome completo de uma pes- soa e o armazene em um vetor de caracteres. O programa deve exibir a quantidade de caracteres alfab´ eticos existente no nome lido, bem com as quantidades de vogais e de consoantes. 3. Fa¸ca um programa em C++ que leia a sua matr´ ıcula e a armazene em um vetor de caracteres. O programa deve exibir o somat´ orio e o produt´ orio dos algarismos que o constitui. 4. Escreva um programa em C++ que leia o nome completo de uma pessoa e o armazene em um vetor de caracteres. O programa deve armazenar, na ordem de surgimento, em um segundo vetor as vogais existentes no nome lido e em um terceiro vetor as consoantes. Os dois vetores formados devem ser exibidos. 5. Uma express˜ ao regular descreve um conjunto de cadeias de caracteres, de forma concisa, sem precisar listar todos os elementos do conjunto. Por exem- plo, a express˜ ao regular “H(¨ a|ae?)ndel” descreve as cadeias ‘H¨ andel’, ‘Han- del’ e ‘Haendel’. Os quantificadores mais comuns utilizados em express˜ oes regulares s˜ ao: |’: operador de alternˆ ancia. Separa uma dentre v´ arias alternativas. Ex.: ‘porcentagem|percentagem’ pode casar com ‘porcentagem’ ou ‘percen- tagem’. ‘( )’: operador de agrupamento. Define o escopo e a precedˆ encia de operadores, entre outros usos. Ex.: ‘p(o|e)rcentagem’ Descrevem as cadeias ‘porcentagem’ e ‘percentagem’. ‘?’: operador de repeti¸c˜ ao. Indica que h´ a zero ou uma ocorrˆ encia do elemento precedente. Ex.: ‘102?00’ descreve as cadeias ‘1000’ e ‘10200’. ‘*’: operador de repeti¸c˜ ao. Indica que h´ a zero ou mais ocorrˆ encias do elemento precedente. Ex.: ‘abc*’ descreve as cadeias ‘ab’, ‘abc’, ‘abcc’, ‘abccc’, etc. 1

lab_07

Embed Size (px)

DESCRIPTION

Lab de LP

Citation preview

universidade federal do rio grande do norteescola de ciencias e tecnologia

ECT1203 – Linguagem de Programacao – 2015.1Prof. Einstein Santos

Atividades praticas 07

1. Escreva um programa em C++ que leia o nome completo de uma pessoa,armazenando-o em um vetor de caracteres. O programa deve exibir o nomelido de tras para frente.

2. Implemente um programa em C++ que leia o nome completo de uma pes-soa e o armazene em um vetor de caracteres. O programa deve exibir aquantidade de caracteres alfabeticos existente no nome lido, bem com asquantidades de vogais e de consoantes.

3. Faca um programa em C++ que leia a sua matrıcula e a armazene em umvetor de caracteres. O programa deve exibir o somatorio e o produtorio dosalgarismos que o constitui.

4. Escreva um programa em C++ que leia o nome completo de uma pessoae o armazene em um vetor de caracteres. O programa deve armazenar, naordem de surgimento, em um segundo vetor as vogais existentes no nomelido e em um terceiro vetor as consoantes. Os dois vetores formados devemser exibidos.

5. Uma expressao regular descreve um conjunto de cadeias de caracteres, deforma concisa, sem precisar listar todos os elementos do conjunto. Por exem-plo, a expressao regular “H(a|ae?)ndel” descreve as cadeias ‘Handel’, ‘Han-del’ e ‘Haendel’. Os quantificadores mais comuns utilizados em expressoesregulares sao:

• ‘|’: operador de alternancia. Separa uma dentre varias alternativas. Ex.:‘porcentagem|percentagem’ pode casar com ‘porcentagem’ ou ‘percen-tagem’.

• ‘( )’: operador de agrupamento. Define o escopo e a precedencia deoperadores, entre outros usos. Ex.: ‘p(o|e)rcentagem’ Descrevem ascadeias ‘porcentagem’ e ‘percentagem’.

• ‘?’: operador de repeticao. Indica que ha zero ou uma ocorrencia doelemento precedente. Ex.: ‘102?00’ descreve as cadeias ‘1000’ e ‘10200’.

• ‘*’: operador de repeticao. Indica que ha zero ou mais ocorrencias doelemento precedente. Ex.: ‘abc*’ descreve as cadeias ‘ab’, ‘abc’, ‘abcc’,‘abccc’, etc.

1

• ‘+’: operador de repeticao. Indica que ha uma ou mais ocorrencias doelemento precedente. Ex.: abc+d decreve as cadeias ‘abcd’, ‘abccd’,‘abcccd’, etc.

• ‘[ ]’: operador de listagem. Lista caracteres. Casa uma ocorrencia dequalquer caractere contido na lista. Por exemplo, ‘[abc]’ casa ‘a’, ‘b’ou ‘c’. E possıvel definir intervalos de caracteres: ‘[a-z]’ casa qualquercaractere de ‘a’ a ‘z’.

Implemente um programa em C++ que leia e armazene uma cadeia de ca-racteres e que verifique se a cadeia lida esta no formato ‘[a-z]+[0-9]+[A-Z]’.O programa deve exibir uma mensagem informando o resultado da veri-ficacao. Exemplos de cadeias validas: ‘ejy5678H’, ‘t7T’; exemplos de cadeiasinvalidas: ‘45tjjkkTT’, ‘qpATH’.

6. Faca um programa em C++ que leia n nomes de pessoas e os armazene emuma matriz de caracteres. O programa deve exibir quantos desses nomes seinicia por vogal e finaliza por consoante.

7. Escreva um programa em C++ que leia na funcao main() uma cadeia decaracteres e a armazene em um vetor de caracteres. O programa deve utilizaruma funcao auxiliar para verificar se a cadeia de caracteres lida tem tamanhoımpar. Caso a cadeia lida nao tenha tamanho ımpar, uma nova cadeia decaracteres deve ser lida. O programa somente deve parar quando uma cadeiade tamanho ımpar for digitada.

8. Implemente um programa em C++ que leia duas cadeias de caracteres e asarmazene em vetores de caracteres. O programa deve utilizar uma funcaoauxiliar que receba as duas cadeias e analise se a segunda cadeia esta dentroda primeira, ou seja, se a segunda cadeia e uma subcadeia da primeira.Caso seja verdadeiro, a funcao deve retornar 1, caso contrario, deve ocorrera concatenacao de ambas as cadeias (e posterior exibicao da cadeia final) eretornar 0. Com base no valor de retorno da funcao auxiliar, uma mensagemdeve ser emitida na funcao main() informando o resultado da analise.

9. Refaca o programa da questao 5 de forma que uma funcao auxiliar sejautilizada para verificar se a cadeia lida e uma cadeia gerada pela expressaoregular ‘[a-z]+[0-9]+[A-Z]’.

10. Escreva um programa em C++ que leia uma cadeia de caracteres na funcaomain() e que utilize uma funcao auxiliar para inverter a caixa dos caracterespertencentes a cadeia lida, ou seja, se o caractere for alfabetico minusculo,ele deve ser convertido para o seu correspondente maiusculo e vice-versa. Acadeia convertida deve ser exibida na funcao main().

11. Implemente um programa em C++ que leia uma sequencia de n cadeias decaracteres e as armazene em uma matriz de caracteres. O programa deveordenar em ordem alfabetica as cadeias lidas e as exibir.

2