Baixe o app para aproveitar ainda mais
Prévia do material em texto
Bruno Jurkovski Fábio da Fontoura Beltrão Felipe Augusto Chies Kauê Soares da Silveira Lucas Fialho Zawacki Marcos Vinicius Cavinato Revisão Aula 1 Nós já vimos: � Escrever/Ler dados - printf() e scanf(); � Lembrar de usar ‘&’ no scanf (menos para String’s) � Tipos de variáveis(int, char, float, double. String[Hoje]); � If – else � If Encadeado � Switch Revisão Aula 1 #include <stdio.h> #include <conio.h> #include <stdlib.h> main(){ int ops, numero; char letra1, letra2; printf ("Selecione uma opcao: \n\n"); printf ("1. Verificar se numero e negativo ou igual a 0\n"); printf ("2. Verificar se duas letras sao iguais\n"); printf ("3. Sair\n\n"); printf ("Opcao: "); scanf("%d",&ops); switch(ops){ case 1: printf ("\n\n Digite um numero inteiro: "); scanf ("%d",&numero); if (numero < 0) printf ("\nO numero %d e menor que 0", numero); else if (numero == 0) printf ("\nO numero %d e igual a 0", numero); else printf ("\nO numero %d maior que 0", numero); break; case 2: printf ("\n\nDigite uma letra: "); fflush(stdin); scanf ("%c", &letra1); printf ("Digite outra letra: "); fflush(stdin); scanf ("%c", &letra2); if (letra1 == letra2) printf ("\n\nA letra %c e igual a letra %c",letra1, letra2); else printf ("\n\nA letra %c e diferente da letra %c", letra1, letra2); break; case 3: exit(0); } // fecha o switch printf ("\n\nDigite alguma tecla para sair!"); getch(); } // fecha o main Hoje Veremos: � Laços Iterativos �While �For �Do-while � Break �Continue � Array �Matrizes � String Laços são úteis para executar várias vezes a mesma tarefa. Veremos os laços: �While � Do - while � For Laços Iterativos � O laço é executado enquanto uma expressão FOR VERDADEIRA! �Sua forma geral é: while (expressão){ declaração; } While �Exemplo: While �Saída: While � É uma generalização do comando while � Sua forma geral é: for (inicialização; condição; incremento) declaração; Usado quando sabe-se quando o laço vai terminar For �Exemplo: For �Saída: For � O do-while executa o laço antes de testar a condição. Assim, garante-se que o laço é executado pelo menos uma vez. � Sua forma geral é: do { declaração; } while (condição); Do - while � Exemplo: Do - while � Saída: Do - while � Receber entradas de inteiros do teclado até que seja recebido o valor 0. � Caso um valor negativo seja recebido, retornar mensagem de erro ao usuário e aguardar um valor válido (positivo). � Ao final, dizer a soma dos números válidos, o maior e o menor (menor valor maior que 0) valor válidos digitados. �Qual será o melhor laço para este programa??? Exercício � Há dois usos para o comando break: o Quebrar execução de um comando o Interromper a execução de um loop � O break faz com que a execução do programa continue na primeira linha seguinte ao loop ou ao bloco que está sendo interrompido Não é considerado um bom hábito de programação usar break fora do switch! Break � O comando break é muito importante quando o comando switch for utilizado. Por exemplo: Break � O comando break é muito importante quando o comando switch for utilizado. Por exemplo: � Saída: Break � Saída: Break � Exemplo 2: Break Break � O comando continue faz com que o loop passe para a próxima iteração. o continue X for: controle do programa passa para a fase incremento o continue X while: controle do programa passa para o teste o continue X do-while: controle do programa passa para o teste Continue � Exemplo Continue � Exemplo � Saída: Continue � Arrays são matrizes unidimensionais(vetores) � Possuem elementos de mesmo tipo de dado � Para declará- los, a forma geral é: tipo_elementos nome_variável[tamanho_array]; Ex: int vetor_de_int[10]; � Desta forma, o compilador reserva memória suficiente para armazenar o número de elementos especificados em tamanho_array Arrays � Em C, a numeração começa sempre em 0. � Exemplo: � Para acessá-los, escrevemos: � Porém, nada impede que se escreva Arrays � O C não verifica se o índice que você usou está dentro dos limites válidos. Isso faz com que se corra o risco, por exemplo, de ter variáveis sobrescritas ou de acessar posições inválidas de memória e causar erro de execução. Ex: int exemplo[10]; scanf(“%d”,&exemplo[12]); Arrays � Inicialização: � A inicialização de arrays pode ser feita da mesma forma como eram inicializadas as demais variáveis: tipo_var nome_var [tam] = {lista_valores}; � A lista de valores é composta por valores do mesmo tipo da variável separados por vírgula. Arrays � Exemplo: � Caso hajam menos valores do que os que foram declarados, o array é preenchido com zeros. Arrays � Pode não ser definido o tamanho do vetor e neste caso, o array assume o tamanho do número de elementos que forem inicializados. � Exemplo: � O vetor terá tamanho 3. Curso de C – aula 3 - PET Computação Arrays Matrizes � Em C podemos ter matrizes de muitas dimensões(tantas quantas o compilador suportar); � A declaração é feita da seguinte forma: tipo_elementos nom_varl[tam][tam][tam]...; � Ex.: int matriz[10][10][10] � Esta matriz poderá guardar 10*10*10 = 1000 valores Matrizes � Não costuma usar- se matrizes maiores do que 3 dimensões, pois ocupa muita memória. � Exemplo de preenchimento de uma matriz bidimensional: #define TAM 10 // Definindo uma constante #include <stdio.h> #include <conio.h> int main(){ int matriz[TAM][TAM]; //Declarando uma matriz 10x10 int acumulador=0; for(int i = 0 ; i < TAM ; i++) for(int j = 0 ; j < TAM ; j++){ matriz[i][j] = acumulador; acumulador++; } for(int i=0 ; i < TAM ; i++){ printf("\n"); for(int j = 0 ; j < TAM ; j++) printf("%d ", matriz[i][j]); } getch(); return 0; } #define TAM 10 // Definindo uma constante #include <stdio.h> #include <conio.h> int main(){ int matriz[TAM][TAM]; //Declarando uma matriz 10x10 int acumulador=0; for(int i = 0 ; i < TAM ; i++) for(int j = 0 ; j < TAM ; j++){ matriz[i][j] = acumulador; acumulador++; } Saída: for(int i=0 ; i < TAM ; i++){ printf("\n"); for(int j = 0 ; j < TAM ; j++) printf("%d ", matriz[i][j]); } getch(); return 0; } Strings � A linguagem C não possui o tipo string. Entende- se string como um array de caracteres. � O final da string é marcada por um ‘\0’, que é colocado automaticamente pelo compilador, portanto, para declarar um array para 10 letras, ele deve possuir tamanho 11 � Ex.: JUCA em uma string: � char palavra[5] - > [‘J’][‘U’][‘C’][‘A’][‘\0’] Três maneiras: 1. char nome[10] = “Ana”; Insere Ana na posição 0, 1 e 2 e ‘\0’ na 3. O Restante fica com zeros. 2. char nome[10] = {‘A’ , ‘n’ , ‘a’}; Parecido com o de cima 3. char nome[] = “Ana” String já fica com tamanho 4(A , n , a , \0) Strings - Inicialização Strings – Leitura/Escrita � Leitura: scanf: usa- se %s e NÃO usa- se & Ex.: scanf(“%s”, variavel); Problema: Lê até encontrar um espaço em branco. James Malávis, seria lido apenas como James gets: Lê a palavra inteira. Ex.: gets(variavel); Strings – Leitura/Escrita � Escrita: printf: usa- se %s Ex.: printf(“%s”, variavel); puts: Similar ao gets. Ex.: puts(variavel); Strings Obs.: Como string não é um tipo base, não pode- se atribuir uma string à outra. Strings - Manipulação Funções da biblioteca STRING.H (#include <string.h>) � strcopy Copia uma string em outra. Formato: strcpy (string_destino , string_origem); � strcat Origem é anexada ao final da destino. Formato: strcat (string_destino , string_origem); Strings - Manipulação � strlen Retorna o tamanho da string(sem contar o ‘\0’). Formato: strlen(string); � strcmp Compara duas strings(per ordem alfabética), caractere por caractere e retorna: 1 - se a primeira for ‘maior’ que a segunda 0 - se forem exatamente iguais - 1 - se a segunda for maior que a primeira Formato: strcmp(string 1, string 2); � Fazer um programa que dado um array com 10 valores some os valores ímparese apresentar a soma quando o laço for encerrado. � Também deve ser impresso o vetor na ordem normal e na ordem inversa. Curso de C – aula 3 - PET Computação Exercício
Compartilhar