22
INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE GRANDE DO NORTE Algoritmos e Técnicas de Programação Programação É Docente: Éberton da Silva Marinho e-mail: [email protected] [email protected] Curso de Tecnologia em Sistemas para Internet 25/09/2013

Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO

GRANDE DO NORTEGRANDE DO NORTE

Algoritmos e Técnicas de ProgramaçãoProgramação

ÉDocente: Éberton da Silva Marinhoe-mail: [email protected]@ifrn.edu.br

Curso de Tecnologia em Sistemas para Internet

25/09/2013

Page 2: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

SUMÁRIO

Cadeias de caracteresA biblioteca string do C++

22

Page 3: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

CONCEITO DE CADEIA

Uma cadeia é um tipo de dado composto, um array de caracteres (char), que termina com o caractere nulo ‘\0’caractere nulo \0

a A c a d e i a d e s t rArray de caracteres

a A c a d e i a d e s t r \0

Cadeia de caracteresCadeia de caracteres

Page 4: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

INICIALIZAÇÃO DE CADEIAS

h [81] “ é d i ”char texto[81] = “Isto é uma cadeia”;

char textodemo[25] = “Isto é uma cadeia muito longa”;[ ] g ;

char cadeiateste[] = “Qual é o comprimento desta cadeia?”;cadeia?”;

Page 5: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

LEITURA DE CADEIAS

i l d <i t >include <iostream>

void main(){(){char nome[30];

std::cin >> nome;std::cout << ‘\n’ << nome;

return 0;}

Mas e a cadeia “Maria das Graças” ? Como seria atribuída a variável nome?

Page 6: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

LEITURA DE CADEIAS

O bj t i t l ét d it O objeto cin tem alguns métodos que permitem a manipulação de caracteres da entrada padrão

cin.getline(var, tam cadeia, separador)cin.getline(var, tam_cadeia, separador)Lê linha completa e atribui a variável varO tamanho da variável deve ser suficiente para armazenar a cadeia e o caractere nulo ‘\0’a cadeia e o caractere nulo \0Se o separador for utilizado, o objeto cin irá ler todos os caracteres até o separador, ou até o ‘\n’ aparecer, caso o separador seja omitidop j

Exemplo

char str[50];cin.getline(str, 50);g ( , );

Page 7: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

LEITURA DE CADEIAS

i t ( )cin.get (var)Lê caractere por caractere e armazena na variável var

cin.putback()Restaura o último caractere lido por cin.get()

cin.ignore()Lê um ou mais caracteres do fluxo de entrada cin sem processar

cin.peek()Lê o caractere seguinte do fluxo de entrada cin sem li i t d fl d t deliminar o caractere do fluxo de entrada

Page 8: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

A BIBLIOTECA STRING|STRING.H|CSTRING

Page 9: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

A BIBLIOTECA STRING|STRING.H|CSTRING

Page 10: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

ATRIBUIÇÃO DE CADEIAS

h * ( h * d i h * f )char * strcpy(char* destino, const char* fonte)

Copia a cadeia de caracteres da fonte para o destino

Page 11: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

ATRIBUIÇÃO DE CADEIAS

h * ( h * d i h * fchar * strncpy(char* destino, const char* fonte, size_t num)

Copia os num primeiros caracteres da fonte para o destino

ExemploExemplo

char c1[] = “Cadeia C++”;

char c2[50];

strncpy(c2 c1 6);strncpy(c2, c1, 6);

std::cout << c2 << “\n”; // Irá imprimir ‘Cadeia’

Page 12: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

COMPRIMENTO DE CADEIAS

i l ( h * d i )size_t strlen(const char* cadeia)

Retorna o tamanho da cadeia excluindo o caractere nulo ‘\0’

Page 13: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

CONCATENAÇÃO DE CADEIAS

h * ( h * d i h * f )char* strcat(char* destino, const char* fonte)

Adiciona a cadeia fonte ao final da cadeia destino

Exemplo

char cadeia[81];

strcpy(cadeia, “Borland”);

strcat(cadeia, “ C++”);strcat(cadeia, C++ );

Page 14: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

CONCATENAÇÃO DE CADEIAS

h * ( h * d i h * fchar* strncat(char* destino, const char* fonte, size_t num)

Adiciona à cadeia destino os num primeiros caracteres da cadeia fonte

E lExemplo

char cd1[50] = “Luiz Maranhão”;

char cd2[50] = “Olá eu sou”;

strncat(cd2, cd1, 5);

Page 15: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

COMPARAÇÃO DE CADEIAS

i ( h * d1 h * d2)int strcmp(const char* cad1, const char* cad2)Compara as cadeias cd1 e cd2 e retorna:

< 0 se cad1 é menor que cad2q

= 0 se cad1 é igual a cad2

> 0 se cad1 é maior que cad2

int stricmp(const char* cad1, const char* cad2)Compara cad1 e cad2 sem distinguir maiúscula de minúscula

int strncmp(const char* cad1 const char* cad2 size tint strncmp(const char* cad1, const char* cad2, size_tnum)

Compara os num primeiros caracteres entre cad1 e cad2

Page 16: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

INVERSÃO E CONVERSÃO DE CADEIAS

h * ( h * )char* strrev(char *s)Inverte a ordem dos caracteres de uma cadeia

char strupr(char *)Converte as letras minúsculas de uma cadeia em maiúsculas

char strlwr(char *)Converte as letras maiúsculas de uma cadeia em minúsculas

Page 17: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

EXERCÍCIO

C i l i 1. Crie um programa que leia o nome, pre-nome e sobrenome de uma pessoa, e o armazene em uma variável nome completo. Em seguida exiba a va áve o e_co p e o. seg a e a o valor da nome_completo

2. Faça um programa que peça 10 cadeias de i f ã i i caracteres e informe quantos são iguais a

primeira3 Um palíndromo é uma palavra ou frase que 3. Um palíndromo é uma palavra ou frase que

poder ser lida tanto da direita para a esquerda como da esquerda para a direita. D id d Desconsiderando espaçamento e acentos gráficos. Faça um programa que verifique se uma cadeia é um palíndromouma cadeia é um palíndromo

Page 18: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

CONVERSÃO DE CADEIAS EM NÚMEROS

i i( h * d)int atoi(const char *cad)Converte a cadeia cad em um número inteiro.

double atof(const char *cad)Converte a cadeia cad em um número double.

long atol(const char *cad)Converte a cadeia cad em um número long.

Page 19: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

BUSCA DE CARACTERES E CADEIAS

char* strchr(char *s, char c)Permite buscar caracteres e padrões de caracteres em cadeiascaracteres em cadeiasLocaliza a primeira ocorrência de um caractere c em uma cadeia sExemplo

char c1[30] = “Aqui é uma string”;

char *c2;

c2 = strchr(c1, ‘s’);

Page 20: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

BUSCA DE CARACTERES E CADEIAS

Char *strstr(const char *s1, const char *s1)

Localiza uma subcadeia em uma cadeia ouLocaliza uma subcadeia em uma cadeia, ou quebra uma cadeia em subcadeiasExemplop

char c1[30] = “Aqui é uma string”;

char c2[30] = “str”;

Char *c3;

c3 = strstr(c1, c2);

Page 21: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

EXERCÍCIOS

Page 22: Algoritmos e Técnicas de Programação · INSTITUTO FEDERAL DE EDUCAÇÃO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Algoritmos e Técnicas de

DÚVIDAS

e-mail:[email protected]@ifrn.edu.br

Endereço eletrônico da disciplina: http://docente.ifrn.edu.br/ebertonmarinho

22222222