MC-102 Aula 17 Strings e Matrizes

Documentos relacionados
MC-102 Aula 19 Registros

1 Resumo: Strings e vetores de caracteres. Departamento de Ciência da Computação IME/USP

Conversão de Tipos e Arrays

Estrutura de Dados Básica

AULA 2: INTRODUÇÃO A LINGUAGEM DE C. Curso: Ciência da Computação Profª.: Luciana Balieiro Cosme

Introdução a Computação

MC-102 Aula 11 Strings

Plano de Aula. if(condição) { bloco de comandos; } else { bloco de comandos2; }

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

ALGORITMO I VARIÁVEIS INDEXADAS

20 Caracteres - Tipo char

INF 1005 Programação I

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Neste artigo estudaremos os conceitos relacionados às matrizes unidimensionais (vetores) e multidimensionais.

Capítulo 2: Introdução à Linguagem C

Strings. Todas as funções apresentadas neste documento estão no arquivo de cabeçalho string.h.

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Fundamentos de Programação II. Introdução à linguagem de programação C++

Universidade Federal de Goiás Instituto de Informática Introdução à Computação Professor: Julliano Rosa Nascimento

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

Variáveis e Comandos de Atribuição

Tipos de Dados Avançados Vetores e Matrizes

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Conceitos básicos da linguagem C

14.1 Vetor - Problemas

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Curso de C para Engenharias

IFTO LÓGICA DE PROGRAMAÇÃO AULA 01

Estruturas de entrada e saída

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

17 - Funções e Procedimentos em C Programação Modular

13 Números Reais - Tipo float

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

Linguagem C vetores multidimensionais

Universidade Federal de Rondônia Técnicas de Desenvolvimento de Programas Lista 4

INF 1005 Programação I

Programação 1. Rafael Vargas Mesquita. ftp://ftp.ci.ifes.edu.br/informatica/rafael/

Registros. Técnicas de Programação. Rafael Silva Guimarães

Linguagens de Programação I

Solucionário de. Programação

IFTO LÓGICA DE PROGRAMAÇÃO AULA 05

Linguagem de Programação

INTRODUÇÃO AO JAVA PARA PROGRAMADORES C

system("pause"); //Envia comando para o sistema operacional solicitando parada de execução do programa } //limitador do corpo do programa

Programação de Computadores I. Ponteiros

MC-102 Aula 06 Comandos Repetitivos

Resumo da Matéria de Linguagem de Programação. Linguagem C

Algoritmos e Programação

Curso de Linguagem C

LINGUAGEM C UMA INTRODUÇÃO

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Componentes da linguagem C++

Estruturas (registros)

LINGUAGEM C. Estrutura básica de um programa

5 Apresentando a linguagem C

V - Lista de Exercícios de SO e Lab. 1-) Escreva um programa em C para criar um arquivo texto, com informações fornecidas pelo usuário não formatadas.

Aluísio Eustáquio da Silva

Introdução à Programação Bacharelado em Sistemas de Informação 3ª Lista de Exercícios - Solução Procedimentos e Funções

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

UFSM Introdução ao Dev-C++ Profa. Patrícia Pitthan. Introdução ao Dev-C++

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

INTRODUÇÃO À LINGUAGEM C++

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Estruturas de Repetição

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Linguagem de Programação I

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

Algoritmos e Programação Estruturada

Algoritmos de Busca em Tabelas

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

Convertendo Algoritmos para a Linguagem C

Estruturas (Registros)

Exercício 1. Tabela 1: Cadastro de usuários, senhas e privilégios (exemplo). Login Senha Privilégio Armamento

INF 1620 P1-10/04/02 Questão 1 Nome:

Curso de C: uma breve introdução

2. OPERADORES ALGORITMOS, FLUXOGRAMAS E PROGRAMAS FUNÇÕES... 10

Técnicas de Programação I

Tabela ASCII de caracteres de controle

Programação Estruturada

Computação L2. Arquivos. Observação: Material da Disciplina Computação Eletrônica CIN/UFPE.

Introdução à Engenharia ENG1000

Estruturas de Dados. Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos

Matrizes. Marina Andretta. 17 de abril de 2017 ICMC-USP. Marina Andretta (ICMC-USP) sme0230-ipc 17 de abril de / 30

Introdução a C Tipos de Dados Variáveis Operadores

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s

Capítulo 9. Vetores e Matrizes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Curso de Programação Computadores

INTRODUÇÃO À PROGRAMAÇÃO BCC 201 TURMAS 31, 32 E AULA TEÓRICA 4 PROF. MARCELO LUIZ SILVA (R E D)

2 Orientação a objetos na prática

LINGUAGEM C: DESCOMPLICADA. Prof. André R. Backes

Transcrição:

MC-102 Aula 17 Strings e Matrizes Instituto de Computação Unicamp 5 de Maio de 2015

Roteiro 1 Strings Strings: Exemplos 2 Matrizes Exemplos com Matrizes 3 Exercícios (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 2 / 25

Strings A linguagem C não possui o tipo string explicitamente, mas podemos considerar um vetor de caracteres como uma string. Em C uma string é sempre terminada pelo caracter especial: \0 Portanto sempre declare uma string com um caracter a mais do que precisa! Se por exemplo estivermos trabalhando com strings de 10 caracteres: char st[11]; (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 3 / 25

Strings Para ler ou imprimir uma string do teclado usamos o operador especial %s. int main(){ char st[80]; int a; printf("\nentre com nome:"); scanf("%s",st); printf("\nentre com idade:"); scanf("%d",&a); printf("\n Digitado: %s e %d\n",st,a); Note que para strings não é utilizado o & no comando scanf. (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 4 / 25

Strings Para ler strings incluindo espaços use a opção: %[ ˆ \n ]. int main(){ char st[80]; int a; printf("\nentre com nome:"); scanf("%[^\n]",st); printf("\nentre com idade:"); scanf("%d",&a); printf("\n Digitado: %s e %d\n",st,a); (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 5 / 25

Strings: Exemplos Ler uma string de até 80 caracteres e salvar a inversa desta em um vetor. Imprimir a inversa da string lida. (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 6 / 25

Strings: Exemplos int main(){ char st[81], stinv[81]; int tam, i, j; printf("entre com o string: "); scanf("%s",st); tam = 0; while(st[tam]!= \0 && tam < 81){ tam++; stinv[tam] = \0 ; j = tam-1; i = 0; while(i<tam){ stinv[j] = st[i]; i++; j--; printf("a inversa e: %s\n",stinv); (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 7 / 25

Strings: Exemplos A mesma coisa mas com laço for: int main(){ char st1[81], stinversa[81]; int i, j, tam; printf("digite um texto (max. 80):"); scanf("%s",st1); for(tam=0; (st1[tam]!= \0 ) && (tam < 81) ; tam++) ; stinversa[tam] = \0 ; for(j = tam-1, i = 0 ; j >= 0 ; stinversa[j] = st1[i]; j--, i++){ printf("a inversa e: %s\n", stinversa); (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 8 / 25

Strings: Exemplos Ler uma string de até 80 caracteres e salvar a inversa desta em um vetor. Imprimir a inversa da string lida. Não usar vetor adicional! (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 9 / 25

Strings: Exemplos int main(){ char st1[81], aux; int i, j, tam; printf("digite um texto (max. 80):"); scanf("%s",st1); tam=0; while(st1[tam]!= \0 && tam < 81){ tam++; i = 0; j = tam -1; while(i < j){ aux = st1[i]; st1[i] = st1[j]; st1[j] = aux; i++; j--; printf("a inversa:%s\n",st1); (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 10 / 25

Matrizes Suponha que queremos ler as notas de 4 provas para cada aluno e então calcular a média do aluno e a média da classe. O tamanho máximo da turma é de 50 alunos. Solução Criar 4 vetores de tamanho 50 cada. Cada vetor representa as notas dos alunos em uma prova. float nota0[50],nota1[50],nota2[50],nota3[50]; (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 11 / 25

Matrizes Agora suponha que estamos trabalhando com no máximo 100 provas. Seria muito cansativo criar 100 vetores, um para cada prova. Para resolver esse problema podemos utilizar matrizes. Uma matriz é um vetor (ou seja, um conjunto de variáveis de mesmo tipo) que possui duas ou mais dimensões, resolvendo para sempre essa questão. (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 12 / 25

Declarando uma matriz <tipo> nome da matriz [<linhas>] [<colunas>] Uma matriz possui linhas colunas variáveis do tipo <tipo>. As linhas são numeradas de 0 a linhas 1. As colunas são numeradas de 0 a colunas 1. (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 13 / 25

Exemplo de declaração de matriz int matriz [4][4]; 0 1 2 3 0 1 2 3 (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 14 / 25

Acessando uma matriz Em qualquer lugar onde você escreveria uma variável no seu programa, você pode usar um elemento de sua matriz, da seguinte forma: nome da matriz [<linha>] [<coluna>] Ex: matriz [1][10] Refere-se a variável na 2 a linha e na 11 a coluna da matriz. Lembre-se que, assim como vetores, a primeira posição em uma determinada dimensão começa no índice 0. O compilador não verifica se você utilizou valores válidos para a linha e para a coluna. (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 15 / 25

Declarando uma matriz de múltiplas dimensões <tipo> nome da matriz [< dim 1 >] [< dim 2 >]... [< dim N >] Essa matriz possui dim 1 dim 2 dim N variáveis do tipo <tipo> Cada dimensão é numerada de 0 a dim i 1 (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 16 / 25

Declarando uma matriz de múltiplas dimensões Você pode criar por exemplo uma matriz para armazenar a quantidade de chuva em um dado dia, mês e ano: double chuva[31][12][3000]; chuva[23][3][1979] = 6.0; (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 17 / 25

Exemplos com Matrizes Lendo uma matriz 4 4 do teclado: /*Leitura*/ for (i = 0; i < 4; i++) for (j = 0; j < 4; j++) { printf ("Matriz[%d][%d]: ", i, j); scanf ("%d", &matriz[i][j]); (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 18 / 25

Exemplos com Matrizes Escrevendo uma matriz 4 4 na tela: /*Escrita*/ for (i = 0; i < 4; i++) { for (j = 0; j < 4; j++) printf ("%d ", matriz[i][j]); printf ("\n"); (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 19 / 25

Exemplos com Matrizes Ler duas matrizes 4 4 e calcular a soma das duas. (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 20 / 25

Exemplos com Matrizes int main(){ double mat1[3][3], mat2[3][3], mat3[3][3]; int i,j; printf("\n **** Dados da Matriz 1 ****\n"); for(i=0; i<3; i++) for(j=0; j<3; j++){ printf("entre com dado da linha %d - coluna %d: ", i, j); scanf("%lf", &mat1[i][j]); printf("\n **** Dados da Matriz 2 ****\n"); for(i=0; i<3; i++) for(j=0; j<3; j++){ printf("entre com dado da linha %d - coluna %d: ", i, j); scanf("%lf", &mat2[i][j]);...... (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 21 / 25

Exemplos com Matrizes int main(){ double mat1[3][3], mat2[3][3], mat3[3][3]; int i,j;......... for(i=0; i<3; i++) for(j=0; j<3; j++){ mat3[i][j] = mat1[i][j] + mat2[i][j]; printf("\n **** Dados da Matriz 3 ****\n"); for(i=0; i<3; i++){ for(j=0; j<3; j++) printf("%lf, ", mat3[i][j]); printf("\n"); (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 22 / 25

Exercício Escreva um programa que lê uma string de até 50 caracteres, e imprime Palindromo caso a string seja um palindromo e Nao Palindromo caso contrário. OBS: Um palindromo é uma palavra ou frase, que é igual quando lida da esquerda para a direita ou da direita para a esquerda (acentos e espaços em brancos são descartados). Exemplo de palindromo: Saudável leva duas. (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 23 / 25

Exercícios Escreva um programa que leia todas as posições de uma matriz 10 10. O programa deve então exiber o número de posições não nulas na matriz. (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 24 / 25

Exercícios Escreva um programa que lê todos os elementos de uma matriz 4 4 e mostra a matriz e a sua transposta na tela. Matriz Transposta 0 1 0 2 0 0 0 0 0 1 0 2 1 1 1 1 0 1 0 2 0 0 0 0 0 1 0 2 2 2 2 2 (Instituto de Computação Unicamp) MC-102 Aula 17 5 de Maio de 2015 25 / 25