Programação Imperativa. Lição n.º 17 Cadeias de carateres
|
|
- Airton Henriques
- 5 Há anos
- Visualizações:
Transcrição
1 Programação Imperativa Lição n.º 17 Cadeias de carateres
2 Cadeias de carateres Conceitos básicos. Técnicas elementares. Arrays de cadeias de carateres. 11/20/16 Programação Imperativa 2
3 Cadeias de carateres As cadeias de carateres são arrays de char. Cada valor de tipo char ocupa um byte. As cadeias de carateres são representadas em memória por sequências de bytes. Os valores numéricos dos bytes vão de 0 a 255 ou de -128 a 127. Nas cadeias de carateres, o byte de valor numérico zero é o terminador: assinala o fim da cadeia. As funções que processam cadeias de carateres ignoram o que está para além do terminador. As funções que criam cadeias de carateres inserem o terminador após os carateres visíveis. 11/20/16 Programação Imperativa 3
4 Exemplo: Hello Um programa que ciclicamente aceita um nome e responde com Hello seguido do nome lido: void hello(const char *s) printf("hello %s\n", s); void test_hello(void) char name[16]; $./a.out Pedro Hello Pedro Nobody Hello Nobody Cristiano Ronaldo Hello Cristiano Hello Ronaldo Monster Hello Monster $ while (scanf("%s", name)!= EOF) hello(name); Se introduzirmos um nome com mais de 15 carateres, causaremos buffer overflow... Note bem: ao ler cadeias, não se usa o &. 11/20/16 Programação Imperativa 4
5 Cadeias na memória Observemos a pilha, à entrada da função hello: A variável s (a amarelo) na frame da função hello, contém o endereço da variável name (a verde) na frame da função test_hello. A cadeia Cristiano está na variável name, a qual ocupa 16 bytes. O byte 00 a seguir ao byte 6F é o terminador. 11/20/16 Programação Imperativa 5
6 Contagem de carateres Quantas vezes um dado caráter ocorre numa cadeia? int str_count(const char* s, char x) int result = 0; for (int i = 0; s[i]!= '\0'; i++) if (s[i] == x) result++; return result; void unit_test_str_count(void) assert(str_count("malmequer", 'm') == 2); assert(str_count("indelevelmente", 'e') == 5); assert(str_count("paralelipidedo", 'u') == 0); 11/20/16 Programação Imperativa 6
7 Exemplo: robô Um robô desloca-se num plano, recebendo comandos para indicar o sentido do movimento: com E vai para Este, com N vai para Norte, com W vai para Oeste e com S vai para Sul. Um comando é uma cadeia formada só pelas letras E, N, W e S. O robô parte da posição <0, 0>. Depois de uma sequência de comandos, lidos da consola, onde é que está o robô? 11/20/16 Programação Imperativa 7
8 Programa do robô Observe: void test_robot(void) int x = 0; int y = 0; char s[2000]; while (scanf("%s", s)!= EOF) int ne = str_count(s, 'E'); int nn = str_count(s, 'N'); int nw = str_count(s, 'W'); int ns = str_count(s, 'S'); x += ne - nw; y += nn - ns; printf("%d %d\n", x, y); $./a.out NNNNSWWWWSEEWWWWWNNNNNN -7 8 $ /a.out NN SS WW EENNNNSSSWWE -1 1 $ 11/20/16 Programação Imperativa 8
9 Transformação char* int* Os carateres são, na realidade, números inteiros, mas que ocupam só 8 bits. A conversão char int é automática. Eis, como exemplo, uma função que transforma um array de chars num array de ints equivalente : int ints_from_string(const char *s, int *a) int result = 0; for (int i = 0; s[i]!= '\0'; i++) a[result++] = s[i]; return result; 11/20/16 Programação Imperativa 9
10 Testando a transformação char* int* Eis uma função de teste que repetidamente lê uma cadeia, mostra-a e depois calcula e mostra o array de ints equivalente: void test_ints_from_string(void) char s[2000]; while (scanf("%s", s)!= EOF) printf("%s\n", s); int a[2000]; int n = ints_from_string(s, a); ints_println_basic(a, n); $./a.out FARO FARO LISBOA LISBOA lisboa lisboa MONTE GORDO MONTE GORDO /20/16 Programação Imperativa 10
11 Transformação int* char* É parecido, mas atenção: void str_from_ints(int *a, int n, char *s) for (int i = 0; i < n; i++) s[i] = a[i]; s[n] = '\0'; Não podemos esquecer de acrescentar o terminador. void test_str_from_ints(void) int a[2000]; int n = ints_get(a); char s[2001]; str_from_ints(a, n, s); printf("%s\n", s); $./a.out AZP $./a.out lisboa $./a.out $./a.out !"#$%[\ $ 11/20/16 Programação Imperativa 11
12 Cadeias numéricas Numa cadeia numérica, todos os caracteres são algarismos. Faz sentido obter diretamente o array dos números correspondentes: int ints_from_numeric(const char *s, int *a) int result = 0; for (int i = 0; s[i]!= '\0'; i++) a[result++] = s[i] - '0'; return result; Note bem: '\0' é o número 0 (zero); '0' é o número 48, código do caractere ZERO. $./a.out void test_ints_from_numeric(void) char s[2000]; while (scanf("%s", s)!= EOF) printf("%s\n", s); int a[2000]; int n = ints_from_numeric(s, a); ints_println_basic(a, n); /20/16 Programação Imperativa 12
13 Igualdade de cadeias Para verificar se duas cadeias, s e r, são iguais, NÃO se escreve s == r. Escreve-se strcmp(s, r) == 0. Para verificar se são diferentes, escreve-se strcmp(s, r)!= 0. A função strcmp é a função de comparação de cadeias e pertence à biblioteca do C. Para usá-la, devemos fazer #include <string.h>. 11/20/16 Programação Imperativa 13
14 Problema do apuramento de votos Temos as contagem das mesas de votos reunidos num ficheiro, como o ilustrado aqui ao lado. Queremos apurar os resultados de cada partido, mostrando-os no final pela ordem PAF, PS, CDU, BE. Vamos processar diretamente o ficheiro, usando quatro variáveis de acumulação, lendo cada par cadeiavalor e adicionando o valor à variável respetiva. PAF 9 PS 6 CDU 4 BE 2 PS 10 PAF 8 BE 5 CDU 4 PAF 11 PS 5 PS 8 PAF 4 CDU 2 11/20/16 Programação Imperativa 14
15 Programa do apuramento dos votos Observe: void do_count_votes(void) int paf = 0; int ps = 0; int cdu = 0; int be = 0; char s[8]; int x; while (scanf("%s%d", s, &x)!= EOF) if (strcmp(s, "PAF") == 0) paf += x; else if (strcmp(s, "PS") == 0) ps += x; else if (strcmp(s, "CDU") == 0) cdu += x; else if (strcmp(s, "BE") == 0) be += x; else assert(0); printf("%d %d %d %d\n", paf, ps, cdu, be); Esta técnica não é lá muito prática se houver muitos partidos... $./a.out < votes_01.txt $ a.out PAF 10 CDU 5 PAF 7 PS 12 CDU $ 11/20/16 Programação Imperativa 15
16 Arrays de cadeias de carateres Normalmente usaremos apenas arrays de cadeias dinâmicas, e, ocasionalmente, arrays de cadeias estáticas. As cadeias dinâmicas são criadas com malloc. Cada valor no array de cadeias dinâmicas contém o endereço de uma cadeia, a qual reside na memória dinâmica. O valor da cadeia na memória dinâmica terá sido copiado a partir de uma cadeia na pilha. Tecnicamente, um array de cadeias dinâmicas é um array de apontadores, isto é, um array cujos valores são endereços. Nos usos mais comuns, as cadeias dinâmicas são referenciadas por variáveis que estão na pilha. Note bem: dizemos cadeias dinâmicas porque elas residem na memória dinâmica (ou seja, no heap), não porque elas tenham algum tipo de dinamismo. 11/20/16 Programação Imperativa 16
17 Exemplo: Hello para muitos Um programa que aceita uma sequência de nomes, até ao fim dos dados, e depois diz Hello com cada um dos nomes lidos. void test_hello_many(void) char *names[10]; int n = 0; char word[16]; while (scanf("%s", word)!= EOF) names[n] = (char *) malloc(strlen(word) + 1); strcpy(names[n++], word); for (int i = 0; i < n; i++) hello(names[i]); $./a.out Cristiano Rui Ricardo William Rafael Hello Cristiano Hello Rui Hello Ricardo Hello William Hello Rafael $ 11/20/16 Programação Imperativa 17
18 strlen A função strlen dá o comprimento da cadeia passada em argumento: void unit_test_strlen(void) char *s1 = "guatemala"; assert(strlen(s1) == 9); assert(strlen(s1+4) == 5); assert(strlen(s1+9) == 0); char *s2 = "brasil"; assert(strlen(s2) == 6); assert(strlen(s2+1) == 5); Podia programar-se assim: int str_len(const char *s) int result = 0; while (s[result]!= '\0') result++; return result; Note que s1+4, por exemplo, é a subcadeia de s1 que começa em s[4]. Na verdade, o tipo do resultado da função de biblioteca strlen não é int, mas sim size_t, o que por vezes causa algumas surpresas. Note bem: representamos por '\0' o caráter cujo valor numérico é 0 (o tal que é usado como terminador nas cadeias). 11/20/16 Programação Imperativa 18
19 strcpy Para copiar os bytes que constituem uma cadeia para outra posição de memória, usamos a função strcpy. Podia programar-se assim: void str_cpy(char *s, const char *t) int i = 0; while (t[i]!= 0) s[i] = t[i]; i++; s[i] = '\0'; Note que todos os carateres de t são copiados para posições sucessivas, a partir da primeira posição s, e depois, no fim, acrescenta-se o terminador. Na verdade, a função de biblioteca strcpy retorna o valor do primeiro argumento, que representa o endereço para onde o segundo argumento terá sido copiado. Quase sempre ignoramos o valor de retorno. 11/20/16 Programação Imperativa 19
20 Hello para muitos: pilha Nesta experiência entrámos os nomes de cinco países: dinamarca, mali, uruguai, angola e china. Na pilha, a amarelo, a variável s; a vermelho, a variável n, com valor 5; a verde, a variável word, que contém china ; a azul, o array names. No array names, cada valor ocupa 8 bytes; os 5 primeiros representam endereços no heap; os outros não estão inicializados. O valor em s é igual ao primeiro valor em names. dinamarca mali uruguai angola china 11/20/16 Programação Imperativa 20
21 Hello para muitos: heap Os nomes dos países estarão no heap, referenciados pelos endereços no array names: dinamarca mali uruguai angola china Curiosamente, nesta experiência angola foi parar a outra zona do heap: 11/20/16 Programação Imperativa 21
22 Argumentos de tipo array Observámos que o valor do argumento s, à entrada da função hello contém o endereço de cadeia que foi passada. Note muito bem: é o endereço da cadeia, não os carateres que compõem a cadeia; estes ficam onde estavam. No exemplo test_hello, esses carateres estavam na pilha; no exemplo test_hello_many, estavam no heap. Recorde que quando o argumento é um número, a variável que representa o argumento contém uma cópia do valor argumento. Isto é uma regra geral: se o argumento é um número, o seu valor residirá numa posição de memória na frame da função chamada; se o argumento é um array, a frame da função chamada registará o endereço do array. Na situação registada na página anterior, tratando-se da primeira chamada da função hello, o argumento tem o valor do endereço da primeira cadeira, no heap: B0. A seguir terá os valores dos endereças outras cadeias no array: C0, D0, , E0. 11/20/16 Programação Imperativa 22
Programação Imperativa. Lição n.º 16 A pilha de execução
Programação Imperativa Lição n.º 16 A pilha de execução A pilha de execução Registos de execução. Arrays locais. Caso da alocação dinâmica. Segmento de dados. 11/17/16 Programação Imperativa 2 A pilha
Leia maisCaracteres e Cadeias de Caracteres
Caracteres e Cadeias de Caracteres INF1005 Programação I Prof. Hélio Lopes lopes@inf.puc-rio.br sala 408 RDC 1 caracteres e cadeias de caracteres tópicos caracteres cadeias de caracteres (strings) vetor
Leia maisApêndice B. Cadeias de Caracteres (Strings)
Apêndice B. Cadeias de Caracteres (Strings) Até agora, quando desejávamos indicar o número de elementos existentes em um vetor qualquer, utilizávamos uma variável inteira, digamos tam, para armazenar tal
Leia maisProgramação imperativa. 9. Memória
Programação imperativa 9. Memória 9. Memória Utilização da memória pelos programas. Memória estática e memória automática. 2 9. Memória Utilização da memória pelos programas. Memória estática e memória
Leia maisCadeias de Caracteres (Strings)
INF1005: Programação 1 Cadeias de Caracteres (Strings) 02/05/10 (c) Paula Rodrigues 1 Tópicos Caracteres Cadeias de caracteres Leitura de caracteres e cadeias de caracteres Funções que manipulam cadeias
Leia maisMódulo 7 Cadeias de Caracteres
Estruturas de Dados Módulo 7 Cadeias de Caracteres 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora
Leia maisCaracteres. Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência entre caracteres e códigos numéricos
Caracteres Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência entre caracteres e códigos numéricos Exemplo: Tabela ASCII Alguns alfabetos precisam de maior
Leia maisProgramação imperativa. 10. Pilha de execução
Programação imperativa 10. Pilha de execução 10. Pilha de execução A pilha de execução. Memória dinâmica. Números hexadecimais. 2 10. Pilha de execução A pilha de execução. Memória dinâmica. Números hexadecimais.
Leia maiscadeia de caracteres (string) INF Programação I Prof. Roberto Azevedo
cadeia de caracteres (string) INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo razevedo@inf.puc-rio.br cadeia de caracteres (string) tópicos caracteres cadeia de caracteres referência Capítulo
Leia maisEstruturas de Dados. Profa. Juliana Pinheiro Campos
Estruturas de Dados Profa. Juliana Pinheiro Campos Vetores Forma mais simples de estruturar um conjunto de dados. Exemplo: int p[10]; // vetor de inteiros com 10 elementos Reserva de um espaço de memória
Leia maisMétodos Computacionais. Strings (Vetor de Caracteres)
Métodos Computacionais Strings (Vetor de Caracteres) Em C, o tipo char : Caracteres é usado para representar caracteres pode armazenar valores inteiros (em 1 byte), representando assim, 256 valores distintos
Leia maisEstruturas de Dados Aula 6: Cadeias de 28/03/2010
Estruturas de Dados Aula 6: Cadeias de Caracteres 28/03/2010 Caracteres Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis
Leia maisEstruturas de Dados Aula 6: Cadeias de Caracteres
Estruturas de Dados Aula 6: Cadeias de Caracteres Caracteres Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis Códigos
Leia maisIntrodução à Programação em C Input / Output
Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then
Leia maisProgramação de Computadores II. Cap. 7 Cadeias de Caracteres
Programação de Computadores II Cap. 7 Cadeias de Caracteres Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais
Leia maisPonteiros e Tabelas. K&R: Capítulo 5
Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisStrings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.
Introdução Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos. 1 definições Uma string é uma sequência, um conjunto, ou uma cadeia de caracteres.
Leia maisIntrodução à Programação C
Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Vetores Para vários problemas precisamos de uma maneira de representar uma sequência de valores com um número
Leia maisIntrodução a Programação. Strings (Vetor de Caracteres)
Introdução a Programação Strings (Vetor de Caracteres) Tópicos da Aula Hoje aprenderemos a manipular vetores de caracteres (Strings) Caracteres em C Entrada/Saída de caracteres Funções que manipulam caracteres
Leia maisO que é um apontador em C (type pointer in C)?
O que é um apontador em C (type pointer in C)? Um apontador é uma variável que contém um endereço de outra variável. int x = 10;//variável inteira iniciada com o valor 10 int *px = &x;//variável apontadora
Leia maisLinguagem C (continuação)
Linguagem C (continuação) Funções, arrays e ponteiros Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira Centro de Cálculo Instituto Superior de Engenharia de Lisboa João
Leia maisCAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:
CAP. IX - MANIPULAÇÃO DE ARQUIVOS 9.1 Generalidades sobre arquivos 9.2 Abertura e fechamento de arquivos 9.3 Arquivos textos e arquivos binários 9.4 Leitura e escrita em arquivos binários 9.5 Procura direta
Leia maisIntrodução à Programação. Strings
Introdução à Programação Strings Sumário Caracteres (ASCII) Exercícios Vectores de caracteres Strings Exercícios Definição Uma string é um conjunto de caracteres armazenados num vector. Em C, o vector
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Strings! Copyright 2014 IFRN Agenda O tipo char Tabela ASCII Strings Leitura Biblioteca string.h A função main
Leia maisPonteiros. Baseado nos slides do Prof. Mauro.
Baseado nos slides do Prof. Mauro. A memória do computador é uma sequência de bytes, na qual endereçamos cada um sequencialmente. Como vimos, uma variável é uma região da memória que reservamos para armazenar
Leia maisIntrodução à Programação em C (II)
Introdução à Programação em C (II) Resumo Streams de Texto Leitura e escrita de caracteres Caracteres como números inteiros Exemplos Cópia de Ficheiros Contagem de Caracteres Contagem de Linhas Contagem
Leia mais1 Exercícios com ponteiros
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Oitava Aula Prática - 29 de outubro de 2010 O objetivo desta aula prática é exercitar ponteiros e funções. 1 Exercícios com ponteiros
Leia maisEPs 1 e 2. EP2: veja. EP1: veja
1 EPs 1 e 2 EP2: veja http://www.ime.usp.br/~fabricio/ep2/ep2.pdf EP1: veja http://www.ime.usp.br/~yoshi/2006ii/mac122a/eps/ep1/wc.pdf http://www.ime.usp.br/~pf/cweb/ http://www.ime.usp.br/~pf/algoritmos/apend/util.html
Leia maisINF 1620 P1-04/10/03 Questão 1 Nome:
INF 1620 P1-04/10/03 Questão 1 a) Implemente uma função para calcular as raízes de uma equação do segundo grau do tipo ax 2 +bx+c=0. O protótipo dessa função deve ser: void raizes (float a, float b, float
Leia maisComputação Eletrônica. Strings. Prof: Luciano Barbosa. CIn.ufpe.br
Computação Eletrônica Strings Prof: Luciano Barbosa Recapitulando: Vetores Representar uma coleção de variáveis de um mesmo tipo em uma dimensão Ex: float notas[5]; ou float notas[5] = {2.5,3.2,1.9,4.1,2.0};
Leia maisTratamento de Caracteres
Tratamento de Caracteres Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan A tabela ASCII Se os computadores manipulam apenas números, como eles podem armazenar os caracteres de um nome
Leia maisBásico: estrutura de programa, sintaxe Interface com linha de comando
Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências
Leia maisIntrodução a Programação de Jogos
Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição
Leia maisIntrodução a Programação. Ponteiros e Strings, Alocação Dinâmica
Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros
Leia maisVetores II. Strings Leitura e exibição Biblioteca string.h Operações com Strings. Matrizes Definição de Acesso Operações com Matrizes
Strings Leitura e exibição Biblioteca string.h Operações com Strings Matrizes Definição de Acesso Operações com Matrizes Utilidade da String Facilidade de manipulação de um grande conjunto de caracteres
Leia maisAula 9 Oficina de Programação Strings. Profa. Elaine Faria UFU
Aula 9 Oficina de Programação Strings Profa. Elaine Faria UFU - 2017 String Cadeia de caracteres (ou String) É uma seqüência de letras e símbolos, na qual os símbolos podem ser espaços em branco, dígitos
Leia maisINF 1005 Programação I
INF 1005 Programação I Aula 12 Cadeia de Caracteres (Strings) Edirlei Soares de Lima Caracteres Até o momento nós somente utilizamos variáveis que armazenam números (int, float ou
Leia mais3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.5. Vetores 3.5.1. Vetores 3.5.2. Strings 3.5.3.
Leia maisApontadores/ponteiros
Apontadores/ponteiros 1 Apontadores/ponteiros 1. Um ponteiro pode ser manipulado como sendo um vetor. #include int v[5] = { 10, 20, 30, 40, 50 ; int p, i; p = v; for (i = 1; i < 5; i++) printf
Leia maisPonteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013
Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisPonteiros e Tabelas. K&R: Capitulo 5 IAED, 2012/2013
Ponteiros e Tabelas K&R: Capitulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisLinguagem C: Tipos básicos de dados escalares e cadeia de caracteres. Prof. Leonardo Barreto Campos 1
Linguagem C: Tipos básicos de dados escalares e cadeia de caracteres Prof. Leonardo Barreto Campos 1 Sumário Dados Escalares; Strings: Strings Constantes; Strings Variáveis; A função gets(); A função strcpy();
Leia maisprim = A ; prim = &A[0];
57 12 - MAIS SOBRE APONTADOR 12.1 - Ponteiros e arrays Em C, ponteiros e matrizes são tratados de maneira semelhante. 12.1.1 - Nome O nome é um ponteiro, ou seja, aponta (contém o endereço) para o primeiro
Leia maisDisciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Último Conteúdo Estruturas de condição Estrutura condicional simples Utilização da estrutura de condição if com expressões lógicas simples Utilização do comando if
Leia maisChar e Strings de Caracteres
Atualizado em 27/08/2009 Caracteres Caracteres ocupam 1 byte (8 bits) na memória e são declarados com o tipo char. Declaração: char a, b; char x = a ; char y[12]; char z[26] = { abcdefghijklmnopqrstuvwxyz
Leia maisAluno: Valor Nota Q1 3.0 Q2 2.5 Q3 2.5 Q4 2.0 Total 10.0
P4 Programação II 2012.2 Departamento de Informática/PUC- Rio Aluno: Matrícula: Turma: 1. A prova é sem consulta e sem perguntas. A interpretação do enunciado faz parte da prova. 2. A prova deve ser completamente
Leia maisIntrodução aos caracteres e processamento de cadeias.! caracteres são blocos fundamentais de programas em
Introdução aos caracteres e processamento de cadeias.! caracteres são blocos fundamentais de programas em C++.! Programa: composto de seqüência de caracteres que quando agrupadas tem um significado, ou
Leia maisMC-102 Aula 11 Strings
MC-102 Aula 11 Strings Instituto de Computação Unicamp 22 de Setembro de 2016 Roteiro 1 Strings Definição de Strings em C Leitura e Escrita de Strings Inicialização de Strings Strings: Exemplos 2 Biblioteca
Leia maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisChar e Strings de Caracteres
Caracteres Caracteres ocupam 1 byte (8 bits) na memória e são declarados com o tipo char. Declaração: /* variáveis simples */ char a, b; char x = a ; /* vetores */ char y[12]; char z[26] = { abcdefghijklmnopqrstuvwxyz
Leia maisSistemas Operacionais e Introdução à Programação. Programação com linguagem C
Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro
Leia maisCurso Básico de Programação Aula 11. Revisão Aula Anterior Laços de Repetição While; Do-While; For.
Curso Básico de Programação Aula 11 Revisão Aula Anterior Laços de Repetição While; Do-While; For. Introdução à Linguagem C Laços de Repetição While Do-While For while () { } do {
Leia maisCURSO BÁSICO DE PROGRAMAÇÃO AULA 15. Revisão Vetores e Matrizes Trabalho
CURSO BÁSICO DE PROGRAMAÇÃO AULA 15 Revisão Vetores e Matrizes Trabalho Definição: Introdução a Linguagem C Vetores Estrutura que permite armazenar um conjunto de dados do mesmo tipo na mesma variável;
Leia mais3.1 - Funções para manipular dados de entrada e saída padrão
1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado
Leia maisLinguagem de Programação I Vetores e Strings. Thiago Leite Francisco Barretto
Linguagem de Programação I Vetores e Strings Thiago Leite Francisco Barretto Vetores são matrizes unidimensionais; Uma matriz é uma coleção de
Leia maisa) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: ( 1)
INF 620 P - 7/04/04 Questão a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: Ou seja: π 4 * + 3 π 5 7 + 9 i ( ) 4 * n i= 0 2 * i + + K Esta função
Leia maisIntrodução à Programação em C
Introdução à Programação em C Funções Resumo Aula Anterior Tabelas Strings (Tabelas de Caracteres) 2 1 Resumo Funções Definição Protótipo e implementação return e void Passagem por valor Exemplos 3 Funções
Leia maisProgramação imperativa. 18. Busca dicotómica
Programação imperativa 18. Busca dicotómica 18. Busca dicotómica Busca dicotómica. Aplicação: lista branca Argumentos na linha de comando. Ficheiros. Caso dos arrays muito grandes. 2 18. Busca dicotómica
Leia mais1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Leia maisLinguagem de Programação
Linguagem de Programação Biblioteca Gil Eduardo de Andrade Introdução A biblioteca disponibiliza funções para manipulação de Strings (conjunto de caracteres )em C; Dentre as funções
Leia maisSumário. Ficheiros. Ficheiros
Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções
Leia maisINF 1620 P1-16/09/06 Questão 1 Nome:
INF 1620 P1-16/09/06 Questão 1 Considerando a fórmula para o cálculo da distância entre dois pontos (x 1, y 1 ) e (x 2, y 2 ) apresentada a seguir: d = (x 2 " x 1 ) 2 + (y 2 " y 1 ) 2 (a) Escreva uma função
Leia maisLINGUAGEM C: ARRAYS DE CARACTERES: STRINGS
LINGUAGEM C: ARRAYS DE CARACTERES: STRINGS Prof. André Backes DEFINIÇÃO String Sequência de caracteres adjacentes na memória. Essa sequência de caracteres, que pode ser uma palavra ou frase Em outras palavras,
Leia maisTabela ASCII de caracteres de controle
Caracteres Estruturas de Dados Aula 6: Cadeias de Caracteres 31/03/2010 Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis
Leia maisCURSO BÁSICO DE PROGRAMAÇÃO AULA 11. Revisão Aula Anterior Vetores Cadeia de Caracteres
CURSO BÁSICO DE PROGRAMAÇÃO AULA 11 Revisão Aula Anterior Vetores Cadeia de Caracteres Introdução a Linguagem C Laços de Repetição While Do-While For while() { } do { }while();
Leia maisEstruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.
1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras
Leia maisPonteiros. prof. Fabrício Olivetti de França
Ponteiros prof. Fabrício Olivetti de França Anteriormente em prog. estrut. Vimos que as variáveis representando arrays em C armazenam apenas um apontador para o endereço de memória contendo os valores
Leia maisJ. L. Rangel 1. Escreva um programa em C que lê três números inteiros do teclado, e imprime os três números em ordem crescente.
Estruturas de Dados Lista 1: soluções J. L. Rangel 1. Escreva um programa em C que lê três números inteiros do teclado, e imprime os três números em ordem crescente. #include int leint(void)
Leia maisLinguagens de Programação. Parte IV. Relembrando da Última Aula... Ponteiros. Declaração e Inicialização de Variáveis Ponteiros
Linguagens de Programação Parte IV Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Arrays Mais exemplos de programação
Leia maisAula 05 -Introdução àlinguagc Programação: Estr. Dados Strings
Aula 05 -Introdução àlinguagc Programação: Estr. Dados Strings OPL e IC1 Prof: Anilton Joaquim da Silva Anilton.ufu@outlook.com Caracteres Além dos tipos de dados numéricos com os quais temos trabalhado
Leia maisEstrutura de Dados. Cadeia de Caracteres. Roberto Araujo Ago/2013
Estrutura de Dados Cadeia de Caracteres Roberto Araujo Ago/2013 Estrutura de Dados O que é uma estrutura de dados? É um arranjo pré-definido de um ou mais pedaços de dados Ex: Ex: Os carateres 'u', 'v',
Leia maisLinguagens de Programação
Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Arrays Mais exemplos de programação
Leia maisPonteiros & tabelas (cont.) K&R: Capítulo 5
Ponteiros & tabelas (cont.) K&R: Capítulo 5 Sinopse da aula de hoje Pointers in a nutshell & alocação dinâmica de memória Estruturas, funções e apontadores Estruturas auto-referenciadas Exemplo de aplicação:
Leia maisIntrodução à Computação II AULA 08 BCC Noturno - EMA896115B
Introdução à Computação II AULA 08 BCC Noturno - EMA896115B Prof. Rafael Oliveira olivrap@gmail.com Universidade Estadual Paulista Júlio de Mesquita Filho UNESP Rio Claro 2014 (Sem 2) O ambiente de execução
Leia maisLinguagem C Introdução à programação em C
Linguagem C Introdução à programação em C Emanuel Camacho earc96@hotmail.com a33878@ubi.pt 2015 Emanuel Camacho (UBI) Linguagem C 2015 1 / 50 Mapa de conceitos 1 Conceitos básicos 2 Instruções condicionais
Leia maisAlocação Dinâmica em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara
Leia maisIntrodução a Computação
Introdução a Computação Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Programação Programa é um algoritmo escrito em uma linguagem de programação. Existem diversas linguagens
Leia maisLaboratório de Programação. Lição n.º 1 qsort
Laboratório de Programação Lição n.º 1 qsort qsort qsort. qsort com arrays de inteiros. qsort com arrays de cadeias. qsort com arrays de estruturas. 3/13/16 Programação Imperativa 2 Insertionsort e Mergesort
Leia maisProgramação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 7 Arrays. Arrays
5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação Cap. 7 Sumário: Classificação de tipos de dados Características gerais de tipos de dados compostos Definição de array (ou tabela)
Leia maisVetores e Strings. 4. Funções Básicas para manipulação de Strings. A função gets() lê uma string do teclado. Sua forma geral é:
4. Funções Básicas para manipulação de Strings - gets A função gets() lê uma string do teclado. Sua forma geral é: gets (nome_da_string); 187 - gets (continuação) Exemplo: Vetores e Strings 188 #include
Leia maisProgramação de Computadores II. Cap. 5 Vetores
Programação de Computadores II Cap. 5 Vetores Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:
Leia maisExercícios. Alocação Dinâmica. Alocação dinâmica de memória. Alocação de memória. Alocação da Memória Principal. Alocação da Memória Principal
Exercícios 1) Crie uma função que recebe os coeficientes de uma função do 2o. grau e retorna as raízes sem usar vetor. 2) Faça um programa que acha o maior e o menor inteiro dentro de um vetor de 10 inteiros,
Leia maisHello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento
Hello World Linguagem C printf("hello world!\n"); main é a função principal, a execução do programa começa por ela printf é uma função usada para enviar dados para o vídeo Palavras Reservadas auto double
Leia maisPonteiros. Introdução e Alocação Dinâmica
Ponteiros Introdução e Alocação Dinâmica Conceito Um PONTEIRO ou APONTADOR é uma variável usada para armazenar um endereço de memória. Normalmente, o endereço armazenado em um PONTEIRO é a posição de uma
Leia maisUSP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] { icmc. usp. br, gmail. com Página Pessoal:
Leia maisIntrodução à Programação C
Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Recapitulando Um programa C é uma sequência de diretivas (#include e #define), declarações de funções auxiliares,
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: variáveis compostas homogêneas: Arrays Strings
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: variáveis compostas homogêneas: Arrays Strings Prof. Renato Pimentel 1 Relembrando: Comando while em C Exemplo: criar um programa
Leia maisProgramação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre
Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Manipulação de ficheiros de texto Programação 2010/2011 IST-DEEC Manipulação de Ficheiros 1 Sumário Ficheiros
Leia maisComputação 2. Aula 3. Diego Addan Vetores de caracteres (strings)
Computação 2 Aula 3 Vetores de caracteres (strings) Diego Addan diegoaddan@gmail.com Vetor de caracteres (Strings) Uma cadeia de caracteres, mais conhecida como string, é uma seqüência de caracteres (letras
Leia maisProgramação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos
Leia maisUniversidade Federal de Uberlândia Faculdade de Computação. Linguagem C: ponteiros e alocação dinâmica
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: ponteiros e alocação dinâmica Prof. Renato Pimentel 1 Ponteiros 2 Prof. Renato Pimentel 1 Ponteiros: introdução Toda a informação
Leia maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Gerenciamento de Memória Copyright 2014 IFRN Agenda Introdução Alocação dinâmica Funções malloc free calloc realloc
Leia maisIntrodução à Programação (CC111)
Introdução à Programação (CC111) 1.Ano LCC-MIERSI Nelma Moreira Aula 11 Tipos de inteiros em C Os inteiros em C podem ser com sinal ou sem sinal: int i; unsigned int u; E cada um pode ter vários tamanhos:
Leia maisC/C++; biblioteca stdio
INSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA Sistemas Operativos ETI - IGE C/C++; biblioteca stdio 2º Semestre 2005/2006 Ficha 3 1. A biblioteca stdio engloba o conjunto de funções que são normalmente
Leia maisLinguagem de Programação C
Algoritmos e Lógica de Programação Linguagem C Entrada e Saída de dados Reinaldo Gomes reinaldo@cefet-al.br Linguagem de Programação C 1 Fluxo de Saída Padrão Saída Formatada: printf ( ) Tem a
Leia maisINF 1620 P2-14/10/05 Questão 1 Nome:
INF 1620 P2-14/10/05 Questão 1 Considere um cadastro de produtos de um estoque, com as seguintes informações para cada produto: Código de identificação do produto: representado por um valor inteiro Nome
Leia maisAlgoritmos e Estruturas de dados
Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores
Leia maisCURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: C
CURSO SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS DISCIPLINA : INTRODUÇÃO À LÓGICA DE PROGRAMAÇÃO ASSUNTO: C PROFESSOR : Romilson Lopes Sampaio STRINGS Não existe um tipo String em
Leia maisTipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas
Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa
Leia mais