14.1 Vetor - Problemas



Documentos relacionados
INF 1007 Programação II

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

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

INF 1005 Programação I

Tabela ASCII de caracteres de controle

IFTO LÓGICA DE PROGRAMAÇÃO AULA 05

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

9.1.2 Laços Controlados por Entrada: Contador

7. Dados Estruturados Vetores, Matrizes e Strings

Linguagem C Funções definidas pelo usuário. Lógica de Programação

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

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:

ATENÇÃO!!! Rui Morgado - TLP 2

INTRODUÇÃO À LINGUAGEM C++

MC-102 Aula 17 Strings e Matrizes

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

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

Programação: Estruturas de seleção

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

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

String em C++ Verificando o tamanho da string

A linguagem C oferece quatro estruturas de decisão: if, if-else, switch e o operador condicional.

20 Caracteres - Tipo char

7. Estrutura de Decisão

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

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

Conceitos básicos da linguagem C

Estrutura de Dados Básica

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

LINGUAGEM C. Estrutura básica de um programa

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Algoritmos e Programação

compreender a importância de cada estrutura de controle disponível na Linguagem C;

Introdução a Computação

E/S CPU. Memória (Instruções e dados) 2 PARADIGMA IMPERATIVO. Instruções e dados. Resultados das operações. Unidade lógica e aritmética

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

INF 1005 Programação I lista 12

Linguagem de Programação I

Técnicas de Programação: ESTRUTURAS, UNIÕES E TIPOS DEE UFPB

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

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

Tipo de Dados em Linguagem C

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS ESTUDO DE CASO I

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Elementos de programação em C

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Conversão de Tipos e Arrays

Variáveis e Comandos de Atribuição

Trabalho Computacional 2. Aplicativo para Gestão Financeira. Grupos: Os trabalhos devem ser feitos individualmente ou em duplas.

Definição de Programas de Computadores e Linguagem de Programação de Comutadores

Estrutura switch if-else switch switch switch if-else-if switch switch case default break switch switch break Observações: case

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Tipos de Dados Avançados Vetores e Matrizes

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

GABARITO COMENTADO SISTEMAS OPERACIONAIS. PROF. Cláudio de C. Monteiro, Evanderson S. de Almeida, Vinícius de M. Rios

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

1 - INTRODUÇÃO: O QUE É C?

Curso de C para Engenharias

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

Programando em C++ Histórico da Linguagem C

9 Comandos condicionais

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

Manual MQS. Logo após colocar essas informações abrirá a página inicial do sistema:

Hashing (Tabela de Dispersão)

O COMPUTADOR. Introdução à Computação

PCS LABORATÓRIO DE PROGRAMAÇÃO ORIENTADA A OBJETOS PARA A ENGENHARIA ELÉTRICA

Nível da Arquitetura do Conjunto das Instruções

Introdução à Engenharia ENG1000

Software Básico. Conceito de Linguagem de Máquina e Montagem: introdução ao Assembly. Prof. MSc. Hugo Vieira L. Souza

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

LINGUAGEM C UMA INTRODUÇÃO

A Pilha. Aula 02. DPEE 1038 Estrutura de Dados para Automação Curso de Engenharia de Controle e Automação Universidade Federal de Santa Maria

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

2 Pesquisa de valores em uma lista de dados

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre

INSTITUTO SUPERIOR DE CIÊNCIAS DO TRABALHO E DA EMPRESA. Filas de mensagem

LTP-IV. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Q1 Q2 Q3 Nota. Departamento de Informática - PUC-Rio INF 1005 Programação I P2 20/10/2010. Aluno: Exemplo (apenas um exemplo!):

Estruturas de Dados Aula 15: Árvores 17/05/2011

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

INF 1007 Programação II

CONCEITOS BÁSICOS PARA A CONSTRUÇÃO DE ALGORITMOS PARA COMPUTADORES. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Convertendo Algoritmos para a Linguagem C

Curso C: Controle de Fluxo

Dados Estruturados Vetores e Matrizes. SCC120 - Introdução à Ciência de Computação

Laboratório de Banco de Dados II Aula 1. Stored Procedures

Manual SIGEESCOLA Matrícula

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

Roteiro. MC-102 Aula 01. Hardware e dispositivos. O que é um computador? Primeiro Semestre de A linguagem C

Curso de Programação Computadores

INF 1005 Programação I

Java Como Programar, 8/E

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

Bem vindo Joe Ramone!

Computação II Orientação a Objetos

AULA 1 AULA 2. Estudo dirigido para as três primeiras AULAS de LPI Professora ANITA MACIEL 1º ESTUDO DIRIGIDO

Exercícios de Revisão Java Básico

Introdução à Ciência da Computação. Registros em C. Sumário. Registros. Agradecimentos. Parte dos slides a seguir são adaptações dos originais:

Transcrição:

Problema 14: Um método de Criptografia consiste em substituir as letras de uma mensagem através do emparelhamento de alfabetos tal como dado abaixo. Construir um programa que codifica mensagens usando este esquema. Alfabeto original a b c d... v w x y z Alfabeto cifrado B C D E... W X Y Z A Texto original v e n i v i d i v i c i Texto cifrado W F O J W J E J W J D J Vetores, Matrizes e Strings 1

Problema 14 Tabela ASCII #include <stdio.h> main() { int i; // Laço para construir a Tabela ASCII. printf( Tabela ASCII: \n ); printf( int -> char \n ); // A tabela possui 2^8 valores, pois // char é um tipo de 1 byte (8 bits). for(i=0; i < 256; i++) printf( %4d -> %c \n, i, char(i)); } E se imprimir usando (i+1) % 256? e (i+2)%256? O que ocorre? Vetores, Matrizes e Strings 2

(i+1) % 256 Deslocamento do alfabeto (i+2) % 256 Vetores, Matrizes e Strings 3

// Inicialização. char tmp, texto[1000]; // Ler até encontrar.. i = 0; while (i < 1000) { tmp = getche(); if (tmp == '.') break; else { texto[i] = tmp; i++; } // Guardar tamanho da msg. n = i; texto[0] texto[1] texto[100] Mensagem Secreta. M e a texto[0] texto[1] texto[16] n=17 Vetores, Matrizes e Strings 4

// Inicialização char tmp, texto[1000]; // Ler até.. Não ler backspace. i = 0; while (i < 1000) { tmp = getche(); if (tmp == '.') break; if (int(tmp)!= 8) { texto[i] = tmp; i++; } else i--; } Corresponde ao caractere backspace na Tabela ASCII. Mr ensagem Secreta. Mensagem Secreta M texto[0] e texto[1] a texto[16] // Guardar tamanho da msg. n = i; Vetores, Matrizes e Strings 5

Problema 14 Criptografia #include <stdio.h> #include <conio.h> main() { int i, n; char tmp, texto[1000]; // Armazenando a mensagem. printf( Entre com a mensagem: ); i=0; while (i < 1000) { tmp = getche(); // Termina o laço. if (tmp ==. ) break; // Se não for backspace, guarde. if (int(tmp)!= 8) { texto[i] = tmp; i = i + 1; } else i--; //Backspace: elimina ant.} Problema14 Criptografia n = i; // Tamanho do vetor em n. // Codificando a mensagem. for(i=0; i < n; i++) texto[i] = (texto[i]+1)%256; // Mostrando a mensagem //codificada. printf( \n Mensagem Codificada:\n ); for (i=0; i < n; i++) { printf( %c,texto[i]); } printf( \n ); } // fim programa Vetores, Matrizes e Strings 6

Observe que: M e n s a g e m S e c r e t a N f o t b h f n! T f d s f u b Vetores, Matrizes e Strings 7

Problema 15: Criar um programa que captura uma senha e compara com uma palavra previamente cadastrada. No momento da digitação, a senha não deve aparecer. Somente após a validação da senha é que deverá aparecer a palavra digitada e se a palavra digitada confere com a senha ou não. Vetores, Matrizes e Strings 8

// Inicialização. char texto[100], tmp; char senha[100] = Secreta ; // Ler até encontrar o enter ( ). i = 0; while( i < 100 ) { tmp = getch(); // Se digitou, pare leitura. if (int(tmp) == 13) break; else {texto[i]=tmp; printf( * ); i++;} } // Fim while. // Guardar tamanho da msg. n = i; Lê o caractere do teclado, mas o que foi digitado não aparece na tela. Verifica se foi digitado o enter. É preciso ter cuidado com backspace! Vetores, Matrizes e Strings 9

// Ler até encontrar. i = 0; while( i < 100 ) { tmp = getch(); // Se digitou, pare leitura. if (int(tmp) == 13) break; else if (int(tmp)!= 8) //. {printf( * ); texto[i]=tmp; i++; } else i--; // =. } // Fim for. // Guardar tamanho da msg. n = i; Tratamento do Backspace S x e c texto Palavra Digitada S e c r e r e t Vetores, Matrizes e Strings 10 t

verif = 1; // Supõe que senha = texto. // Tamanho senha igual tamanho texto? if (ns == nt) //nt= tamanho digitado { // Ler até achar letra ou fim palavras. for (i=0; i < nt; i++) if (texto[i]!= senha[i]) { verif = 0; break; } } else // Tamanhos. verif = 0; Caso 1: texto senha i Caso 2: texto senha S S Vetores, Matrizes e Strings 11 e e c c r r 0 1 2 3 4 5 6 S S e e g c r r e e e e texto[2]!= senha[2] t t d t a a o a

Problema 15 Senha #include <stdio.h> #include <conio.h> main() { int i, verif, nt, ns = 7; char tmp, texto[100]; char senha[100]="secreta"; // Armazenando a senha digitada. printf("digite a senha "); i=0; while (i < 100) { tmp = getch(); // Termina o laço se for?. if (int(tmp) == 13) break; else if (int(tmp)!= 8) //??. { printf("*"); texto[i] = tmp; i++; } else { putchar('*'); putchar(' '); putchar(char(8)); i--; } //? } //fim laço Problema 15 Senha nt = i; // Tamanho digitada em nt. verif = 1; // Supõe texto == senha. // Ver se texto e senha tem tam?==. if (nt == ns) { for (i=0; i < nt; i++) if (texto[i]!= senha[i]) { verif = 0; break; } } else verif = 0; // Mostrando mensagem. if (verif) printf("\nsenha Correta! \n"); else printf("\nsenha incorreta! \n"); getchar(); } // fim programa Vetores, Matrizes e Strings 12

Vetores, Matrizes e Strings 13

15 - Matrizes Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante

15.1 Dados Estruturados: Matrizes Matrizes - Definição Também chamadas conjuntos bidimensionais, contém: um número fixo de elementos; todos são do mesmo tipo; arranjados na forma de tabela de 2 dimensões; Vetores, Matrizes e Strings 15

15.1 Dados Estruturados: Matrizes Matrizes - Definição Ex.: Uma matriz chamada MAT que tenha m elementos (horizontal) e n elementos (vertical) 0 1 2 3 4 m-1 0 1 2 3 4... n-1... * Mat[2][3] Vetores, Matrizes e Strings 16

15.1 Dados Estruturados: Matrizes Matrizes ou Array bidimesionais são estruturas de dados que organizam informações; de mesmo tipo e mesmo nome; em tabelas. Para tanto, são utilizados dois índices, que correspondem a linhas e colunas. Para se acessar ou modificar um elemento da matriz deve-se especificar o nome da matriz seguido de dois números entre colchetes ([ ]), sendo que o primeiro corresponde a linha e o segundo corresponde a coluna relativa a posição que o elemento ocupa na Tabela. Vetores, Matrizes e Strings 17

15.1 Dados Estruturados: Matrizes Declaração e Atribuição de Matrizes Declaração int a[ 3 ][ 2 ]; Uma matriz nada mais é que um vetor de duas dimensões, logo a atribuição de valores a uma matriz é feita de modo semelhante atribuição de valores a um vetor. A declaração de um vetor com n dimensões é feita do seguinte modo: tipo nome_do_vetor [dim 1 ][dim 2 ][dim 3 ]... [dim n ] Vetores, Matrizes e Strings 18

15.1 Dados Estruturados: Matrizes Ex: Declaração de uma matriz de inteiro de dimensão 3x2. main() int mat[3][2]; //3 linhas, cada uma delas com 2 posições Linha 0 Linha 1 Linha 2 Coluna 0 mat[0][0] mat[1][0] mat[2][0] Coluna 1 mat[0][1] mat[1][1] mat[2][1] Vetores, Matrizes e Strings 19

15.1 Dados Estruturados: Matrizes - Atribuição Inicial Atribuição Automática Inicial A atribuição inicial é feita da mesma maneira que para vetores de uma só dimensão. Ex: int a[ 3 ][ 2 ] = {1, 1, 2, 2, 3, 3}; Neste exemplo, o vetor tem 3 linha e duas colunas, logo está sendo feita a seguinte atribuição: a[0][0]=1 a[1][0]=2 a[2][0]=3 a[0][1]]=1 a[1][1]=2 a[2][1]=3 Observe que os dois primeiros números da chave estão sendo atribuídos a 1ª. linha, os dois seguintes são atribuídos à segunda linha e os dois últimos são atribuídos a terceira linha. Vetores, Matrizes e Strings 20

15.1 Dados Estruturados: Matrizes - Atribuição Inicial A atribuição inicial também pode ser feita da seguinte maneira Ex: int a[ 3 ][ 2 ] = { {1, 1}, {2, 2}, {3, 3} }; Vetor de tamanho 2x1 Observe que agora existe uma separação por linhas, sendo: {1,1} relativa a 1ª. linha; {2,2} relativa a 2ª. linha e {3,3} relativa a 3ª. linha. Na realidade em C, uma matriz é considerada um vetor de vetores. Então, no exemplo acima: a É um vetor com 3 elementos (cada elemento é um vetor de 2 inteiros) a[i] É um vetor de 2 inteiro a[i][j] É um inteiro que está colocado na posição i, j do vetor a Vetores, Matrizes e Strings 21

15.1 Dados Estruturados: Matrizes Acesso e Modificação de valores de uma Matriz Matriz Inicial Operações Matriz Final 1 1 a[0][1]=a[0][1]+2 1 3 2 2 3 3 a[1][0]=a[0][1]+1 a[2][0]=a[2][0]*a[1][0] 4 2 12 3 Vetores, Matrizes e Strings 22

Unesp-Campus de Guaratinguetá 15 - Matrizes FIM Aula 15 Referências dos slides Curso de Programação de Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Prof. Décio Mourão Vetores, Matrizes e Strings Prof. Galeno Sena 23