Nivelamento de C: Vetores e Strings

Slides:



Advertisements
Apresentações semelhantes
Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 5 Criado por Frederick H. Colclough, Colorado Technical University Vetores.
Advertisements

Funções em C Prof. Fabiano Utiyama.
Técnicas de Programação II Revisão TP1 Parte2
Programação em Java Prof. Maurício Braga
Programação em Java Prof. Maurício Braga
Algoritmo I Aula 05 Pseudo-Linguagem.
Algoritmos de Ordenação
Nivelamento de C: Tipos Estruturados de Dados
Nivelamento de C: Ponteiros e Alocação Dinâmica
Algoritmos de Ordenação
Capítulo 1 – Conceitos Básicos 1 Segunda-feira, 22 de Outubro de 2007 UNIBRATEC – Ensino Superior e Técnico em Informática Aula 15 – Tipos de Dados Avançados.
Algoritmos de Ordenação
Algoritmos de Busca CONTEÚDO (1) Motivação (2) Busca Linear
Pilhas e Filas CONTEÚDO (1) Pilhas (2) Filas.
Programação II Estruturas de Dados Aula 01
Algoritmos e Programação Linguagens de Programação Teoria Aula (09/06)
Algoritmos e Estrutura de Dados I
Introdução a Programação
Prof. Luis Otavio Alvares
Linguagem C LPG-I – Variáveis Estruturadas – Vetores
LPG - I: Ponteiros e Vetores/Matrizes UDESC - SBS
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Estruturas de Dados II Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
Linguagem C Strings.
Estruturas de Dados Homogêneas Unidimensionais – Vetores e Strings
Linguagem C Strings.
Matrizes e Funções - Continuação
Exercícios de php Dia 04/03/2011.
Variável Variável: “objecto” que pode assumir diversos valores;
Módulo I - Exercícios PSI – Programação e Sistemas de Informação Exercícios – Funções pré-definidas; Estruturas repetitivas. 1- Faça um algoritmo.
Classes e objetos Arrays e Sobrecarga
Apontadores ou Ponteiros
Algoritmos e Programação
Introdução a Computação e Cálculo Numérico
Aula prática 9 Alocação Dinâmica Monitoria de Introdução à Programação
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Aula prática 6 Vetores e Matrizes
PROGRAMAÇÃO ESTRUTURADA II
Estrutura de dados II Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Programação II Estruturas de Dados Aula 02 - continuação
Programação I Aula 2 (Métodos)
UNIDADE 5 ESTRUTURAS DE DADOS HOMOGÊNEAS
Computação Eletrônica
Programação em C++ Compiladores
Unidades de Medida Prof. Jair Nogueira.
Vetor Prof. Guilherme Baião S. Silva Adaptações:
Algoritmos e Estruturas de Dados I – Recursão
Programação Orientada a Objetos Curso de Engenharia da Computação Parte 03 – Conceitos Básicos III Prof. Fabricio Mota Oliveira
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Universidade do Vale do Rio dos Sinos - São Leopoldo -
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Joaquim José Hangalo  Podemos entender a memória do computador como um conjunto de células que armazenam informações.  Cada célula.
William Ivanski Curso de Programação C#. Sumário  Exercícios para Fixação  Utilizando uma IDE  Elementos da Linguagem C#  Valores  Variáveis  Tipos.
STRINGS Dilvan Moreira (baseado no livro Big Java e Z. Liang)
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: _01.
Recursividade Profs. De Prog2 e Lab2.
VETORES.
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Ponteiros.
Introdução à Programação Engenharia da Computação Aula Prática 3 Funções Monitoria
Estruturas Homogêneas – Vetores e Matrizes
Linguaguem de Programação II
Aula Prática 6 Vetores e Matrizes Monitoria
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 15 Funções.
Algoritmos Aula 5 Estrutura de Decisão e Repetição. Prof. Luiz
Estrutura de Repetição
PRE 1002 Éverlin Marques 2015/1.
Aula Prática 5 Recursão Monitoria  Na linguagem C, como em muitas outras linguagens, uma função pode chamar a si própria.  Uma função assim.
Aula Prática 6 Ponteiros Monitoria  Quando declaramos uma matriz:  tipo meuArray[tam];  O compilador aloca a matriz em uma região de memória.
Estruturas Homogêneas - Vetores
Transcrição da apresentação:

Nivelamento de C: Vetores e Strings CONTEÚDO (1) Exercícios de Revisão (2) Vetores (3) Strings

Antes de prosseguir para vetores e strings... (1) Exercícios de Revisão Antes de prosseguir para vetores e strings... Implemente o que se pede: Faça um programa que leia a altura de uma pessoa (em metros) e retorne esse valor convertido para pés e polegadas Considere: 1 pé = 30.48cm e 1 polegada = 2.54cm Saída: 1.68m corresponde a 5.5 pes e 66.1 polegadas Faça um programa que leia um número em segundos, e retorna o mesmo em horas, minutos e segundos Saída: 7322 segundos equivalem a 2 horas, 2 minutos e 2 segundos Faça um programa que leia um número e imprima uma sequência numérica. Ex: se o número digitado foi 3: Saída: 1 1 2 1 2 3 Faça uma função que recebe um inteiro e retorna seu fatorial Fat(n)=n*n-1*n-2*..*1 Ex: Fat(5)=5*4*3*2*1 Faça uma função que recebe uma temperatura em ºC e retorna seu equivalente em ºF Considere: TC = TF-32 100 180

Definição e declaração de vetores Objetivo: Declarar N variáveis de um mesmo tipo Primeiro índice: zero Também conhecido como arranjo Sintaxe: tipo nome_do_vetor[N]; Ex: float notas[30]; float teste=7; notas[0] = 4.5; notas[1] = 10; notas[2] = notas[0]; // qual valor é atribuído a elemento de índice 2? notas[3] = notas[10]; // o que acontece aqui? notas[30] = 2; // essa instrução é legal em C? // qual o valor provável de teste depois dessa instrução? Ex: O que faz o programa abaixo? main(){ int v[10], j; for (j = 0; j <= 10; j++) { v[j] = 0; } igual?

Inicializando valores (2) Vetores Inicializando valores Inicialização: tipo nome_do_vetor[N] = {valor1,valor2,...,valorN}; Caso o vetor tenha sido inicializado, seu tamanho (N) pode ser omitido Ex1: int idades[10] = {34,53,12,20,22}; // qual o valor de idades[5]? int idades2[] = {34,53,12,20,22}; // qual o tamanho de idades2? for(i=0;i<10;i++){ printf(“Idade do usuario %d eh %d”,i+1,idade[i]); // cuidado com o lixo!!! } Solução? Você deveria ter inicializado todos os valores!

(2) Vetores Auto-avaliação Faça um programa que defina um vetor de 10 inteiros, com valores já inicializados e calcule a soma dos elementos Ex: int vetor[10] = {1,2,3,4,5,6,7,8,9,10}; Faça um programa que copie o vetor1 no vetor2 de forma invertida. Depois, imprima os vetores. Defina uma constante para o tamanho do vetor. #define N 10 int vetor1[N] = {1,2,3,4,5,6,7,8,9,10}; int vetor2[N];

Definição e inicialização de strings Vetor de char Não existe o tipo pré-definido string em C Termina com o caractere ‘\0’ Portanto, se você precisa de uma string com 10 caracteres, declare um vetor com 11 posições (char) Sintaxe: char nome_da_string[tamanho]; Ex1: char s1[]=“Fred”; // qual o tamanho dessa string? char s2[5]; char s3[]; // ilegal, pois não declarei o tamanho da string nem inicializei Ex2: char nome[20] = {'F','r','e','d‘,’\0’}; printf(“Nome: ”); for(i=0;i<20;i++){ printf(“%c”,nome[i]); } É opcional, caso você inicialize um valor, pois o compilador consegue deduzir char nome[20] = “Fred”; A printf(“Nome: ”); for(i=0;nome[i]!=‘\0’;i++){ printf(“%c”,nome[i]); } B C printf(“Nome: %s”,nome);

Função gets() Ex: o programa abaixo copia uma string em outra (3) Strings Função gets() Ex: o programa abaixo copia uma string em outra #include <stdio.h> main (){ int count; char s1[100],s2[100]; printf(“Digite a primeira string: ”); gets(s1); for (count=0;s1[count];count++) s2[count]=s1[count]; s2[count]='\0'; } Não é permitido diretamente: (lembre-se: string não é um tipo pré-definido em C) Comparar duas strings Ex: if (s1==s2) {...} Atribuir uma string a outra Ex: s1 = s2; Para realizar tal tarefa, use a biblioteca <string.h> O scanf() não! A função gets (stdio.h) é capaz de capturar uma string com espaços em branco Qual é a condição de parada do for aqui? (vimos na aula passada!)

strcpy (string_destino,string_origem) (3) Strings Biblioteca string.h strcpy (string_destino,string_origem) Objetivo: copia a string_origem para a string_destino Ex: #include <stdio.h> #include <string.h> main () { char str1[100],str2[100],str3[100]; printf ("Entre com uma string: "); gets (str1); strcpy (str2,str1); /* Copia str1 em str2 */ strcpy (str3,"Voce digitou a string "); /* Copia "Voce digitou a string" em str3 */ printf ("\n\n%s%s",str3,str2); }

(2) Strings: biblioteca string.h strcat (string_destino,string_origem) Objetivo: A string_origem permanecerá inalterada e será anexada ao fim da string_destino Ex: #include <stdio.h> #include <string.h> main () { char str1[100],str2[100]; printf ("Entre com uma string: "); gets (str1); strcpy (str2,"Voce digitou a string "); strcat (str2,str1); /* str2 armazenara' Voce digitou astring + o conteudo de str1 */ printf ("\n\n%s",str2); }

strlen (string) Biblioteca string.h (3) Strings Biblioteca string.h strlen (string) Objetivo: A função strlen() retorna o comprimento da string fornecida Retorno: tamanho de string Atenção: O terminador nulo não é contado Ex: #include <stdio.h> #include <string.h> main () { int size; char str[100]; printf ("Entre com uma string: "); gets (str); size=strlen (str); printf ("\n\nA string que voce digitou tem tamanho %d",size); }

Biblioteca string.h strcmp (string1,string2) Objetivo: compara a string1 com a string2. Retorno: 0 se elas forem idênticas valor<0 se string1 for menor que string2. Ex: “Fred” < “Ze” valor>0 se string1 for maior que string2. Ex: “Fred” > “Bala” Ex: #include <stdio.h> #include <string.h> main (){ int iguais; char str[100], str2[]=“Fred”; printf (“Digite seu nome: "); gets (str); iguais=strcmp (str, str2); if (iguais==0) printf ("\n\nSeu nome é Fred"); getchar(); }

(3) Strings Biblioteca string.h Outras funções:

(3) Strings Auto-avaliação Faça um programa que leia do usuário duas strings: nome e ultimoNome. Seu programa deve criar uma terceira string vazia (nomeCompleto), que deve concatenar as duas outras strings, lembrando de colocar um espaço em branco entre elas. Finalmente imprima nomeCompleto na tela. Ex: nome = “Frederico” ultimoNome = “Fernandes” Então: nomeCompleto = “Frederico Fernandes”