Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
AULA 10 – Prof. LUIZ DI MARCELLO * ALGORITMOS – AULA 10 Prof. LUIZ DI MARCELLO Rio de Janeiro, 18 de Junho de 2011 AULA 10 – Prof. LUIZ DI MARCELLO * AULA 10 – Acrescentando detalhes OBJETIVOS Construir programas usando funções que manipulam vetores de char, construindo trechos de proteção, conversões e efeitos TELA 4 de 15: Na aula de hoje, iremos mostrar a importância de oito funções que estão presentes em três bibliotecas. Esperamos que você esteja dominando todo conteúdo trabalhado no curso, visto que alguns exemplos dessa aula apresentam um grau maior de complexidade. AULA 10 – Prof. LUIZ DI MARCELLO * Parte do nosso trabalho pode ser simplificado. Existem funções prontas para uso que facilitam a vida. As funções estão definidas em cabeçalhos e utilizamos a diretiva #include <cabeçalho> para indicar quais serão necessários Agora é só diversão !!! AULA 10 – Prof. LUIZ DI MARCELLO * #include <iostream> Funções de entrada/saída: cin, cout... #include <cstdlib> Funções variadas: rand, system... #include <cmath> Funções matemáticas: sqrt, pow... Nós já experimentamos... AULA 10 – Prof. LUIZ DI MARCELLO * #include <cstring> strlen (str) retorna o número de caracteres de str que precedem o caractere \0 strcat (str1,str2) anexa o conteúdo de str2 ao final de str1 strcpy (str1,str2) copia o conteúdo de str2 em str1 strcmp (str1,str2) compara o conteúdo de str1 e str2 e o retorno pode ser: AULA 10 – Prof. LUIZ DI MARCELLO * #include <cstring> #include <iostream> #define TAM 100 using namespace std; int main () { char nome1[TAM]; // constante em define int t1; cout << "Nome1: "; cin.getline (nome1,TAM); // inclui espaços t1 = strlen (nome1); cout << "Tamanho de nome1: " << t1 <<"\n"; system ("pause"); } Exercício 1 Mas... O que faz esse programa? AULA 10 – Prof. LUIZ DI MARCELLO * #include <cstring> #include <iostream> using namespace std; int main () { char nome1[100],nome2[100]; char aux[100]; int t1, t2; cout << "Nome1: "; cin.getline (nome1,100); cout << "Nome2: "; cin.getline (nome2,100); t1=strlen (nome1); t2=strlen (nome2); cout << "Tamanho de nome1: “; cout<< t1<<"\n"; cout << "Tamanho de nome2: “; cout << t2<<"\n"; if (strcmp(nome1,nome2) > 0){ strcpy(aux,nome1); strcpy(nome1,nome2); strcpy(nome2,aux); } strcat(nome1, " "); strcat(nome1,nome2); cout << nome1 <<"\n"; system ("pause"); } Exercício 2 E agora... O que faz esse programa? AULA 10 – Prof. LUIZ DI MARCELLO * #include <cctype> toupper(carac) converte minúscula em maiúscula tolower(carac) converte maiúscula em minúscula #include <cstdlib> atoi(str) converte o que for possível em número inteiro atof(str) converte o que for possível em float AULA 10 – Prof. LUIZ DI MARCELLO * #include <cstring> #include <iostream> #define TAM 100 using namespace std; int main () { char nome[TAM]; int t1,i; cout << "Nome: "; cin.getline (nome,TAM); t1 = strlen (nome) ; for (i=0; i < t1; i++) nome[i] = toupper (nome[i]); cout << "Novo nome: " << nome <<"\n"; system ("pause"); } Exercício 3 Mais um... E esse programa, o que ele faz? AULA 10 – Prof. LUIZ DI MARCELLO * #include <cstring> #include <iostream> #define TAM 100 using namespace std; int main () { char nome1[TAM], nome2[TAM]; int t1,i; cout << "Nome: "; cin.getline (nome1,TAM); t1 = strlen (nome1) - 1; for (i=0; i<=t1; i++) nome2[t1-i]= nome1[i]; nome2[t1+1] = '\0'; cout << "Nome invertido: " << nome2 <<"\n"; system ("pause"); } Exercício 4 Que tal mais um... E o que será que ele faz? AULA 10 – Prof. LUIZ DI MARCELLO * #include <cstring> #include <iostream> #define TAM 100 using namespace std; int main () { char nome1[TAM],idade[TAM]; int anos; cout << "Nome: "; cin.getline (nome1,TAM); cout << "Idade: "; cin.getline (idade,TAM); if (strlen(idade) > 2) idade[2]='\0'; anos = atoi(idade); cout << nome1 << " tem " << anos << " anos\n"; system ("pause"); } Exercício 5 Esse é o último... AULA 10 – Prof. LUIZ DI MARCELLO * 1. A função atoi() converte um número inteiro para um vetor de char. 1) Verdade. 2) Falso. 3) Não sei responder. 2. A função strlen() retorna o número de caracteres armazenados na memória principal. 1) Verdade. 2) Falso. 3. Vetores de char podem ser comparados usando operadores relacionais. 1) Verdade. 2) Falso. REGISTRO DE FREQUÊNCIA AULA 10 – Prof. LUIZ DI MARCELLO * 4. Se o retorno da função strcmp() for um número menor do que 0 significa que o conteúdo do primeiro vetor vem antes na ordem alfabética do que o segundo vetor de char. 1) Verdade. 2) Falso. REGISTRO DE FREQUÊNCIA AULA 10 – Prof. LUIZ DI MARCELLO * 5. Observe o trecho de programa abaixo e selecione a resposta correta ... for(x=0; x<4; x++) { for(y=0; y<4; y++) if(x < y) cout<<num[x][y]<<”\t”; else cout]<<”\t”; cout<<”\n”; } ... Exibe todos os elementos da matriz num. Só exibe os elementos fora da Diagonal Principal. Exibe os números que se encontram no triângulo abaixo da Diagonal Principal. NRA REGISTRO DE FREQUÊNCIA AULA 10 – Prof. LUIZ DI MARCELLO * #include <cstring> #include <iostream> using namespace std; int main () { cout << “ “ cout << “ “ system ("pause"); } BOAS PROVAS! OBRIGADO E ATÉ O PRÓXIMO MÓDULO! *
Compartilhar