A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Nivelamento de C: Vetores e Strings

Apresentações semelhantes


Apresentação em tema: "Nivelamento de C: Vetores e Strings"— Transcrição da apresentação:

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

2 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

3 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?

4 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!

5 (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];

6 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);

7 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!)

8 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); }

9 (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); }

10 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); }

11 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(); }

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

13 (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”


Carregar ppt "Nivelamento de C: Vetores e Strings"

Apresentações semelhantes


Anúncios Google