Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Rota de Aprendizagem – Aula 2 Funções de Entrada e Saída Nesta rota de aprendizagem serão apresentadas as funções de entrada e saída que serão utilizadas nas demais aulas e na resolução dos exercícios. Função printf() A função printf() é uma das funções de entrada e saída (E/S) que podem ser utilizadas em linguagem de programação C. Porém, esta não faz parte da definição da linguagem C, sendo incluída na biblioteca stdio.h conforme visto na aula anterior. Esta função tem como objetivo apresentar na tela uma expressão definida pelo usuário, e para isto é necessário que siga a seguinte sintaxe printf (“expr. de controle”, argumento1, argumento 2, ....); onde a expressão de controle é uma expressão definida, que pode ser apresentar alguns códigos, conforme ilustra a Tabela 1. Quando a função printf() encontra um desses códigos, ela o substitui pelo argumento fornecido, ou seja, estes argumentos podem ser nenhum ou quantos forem necessários. Tabela 1. Strings ou Expressões de Controle 2 Além das expressões de controle, também é possível utilizar na sintaxe da função printf() códigos especiais que permitem que melhor visualização na tela do usuário, conforme ilustra a Tabela 2. Tabela 2. Exemplos de códigos especiais Como exemplos da função printf() pode-se apresentar as seguintes linhas de comandos: printf( “Linguagem de Programação C.”); Saída na tela do usuário: Linguagem de Programação C. printf( “Esta aula tem %d temas.\n”, 3); Saída na tela do usuário: Esta aula tem 3 temas. printf( “Nome: %s\nSexo: %c\nIdade: %d\n”, “João”, ‘M’, 25); Saída na tela do usuário: Nome: João Sexo: M Idade: 25 Exemplos utilizando toda a estrutura básica de um programa desenvolvido em linguagem C é visualizado na sequência. 3 #include <stdio.h> main() { char letra; letra = ‘A’; printf (“%c”, letra); } Função scanf() Outra função de entrada e saída que podem ser utilizadas na linguagem de programação C é a função scanf(). Esta função lê do teclado dados e coloca os valores digitados pelos usuários nas variáveis utilizadas como parâmetros da função, conforme ilustra a sintaxe scanf(“expressão de controle”, &argumento1, &argumento2, ...); onde a expressão de controle utiliza os mesmos códigos da função printf() mostrados na Tabela 1. O operador de endereço (&), que precede os argumentos da função, retorna o primeiro byte ocupado pela variável na memória do computador. Exemplos de programas utilizando as funções de entrada e saída são ilustrados abaixo. #include <stdio.h> main() { int idade; scanf (“%d”, &idade); printf (“ A idade lida eh %d”, idade); } #include <stdio.h> main() { int num1, num2, sub; printf (“Digite o primeiro número:\n ”); scanf (“%f”, &num1); printf (“Digite o segundo número:\n ”); scanf (“%f”, &num2); 4 sub = num1 – num2; printf(“O resultado da subtração é %d”, sub); } Comandos de Controle de Fluxo Comandos de controle de fluxo em linguagem de programação possibilitam ao programador alterar a sequência de execução do programa. Dentre estes comandos podemos citar o condicional simples, condicional composto e o case. Condicional Simples - IF Este comando condicional somente é executado se a sua condição for verdadeira, conforme descreve sua sintaxe if (condição) printf(comando); O exemplo que segue ilustra um programa utilizando o condicional simples – IF com o objetivo de verificar se a soma de dois números é menor que o terceiro número lido. #include<stdio.h> int n1, n2, n3; main() { printf(“\n Digite três números:”); scanf(“%d%d%d”, &n1, &n2, &n3); if ((n1 + n2 < n3)) printf (“A soma dos números é menor que n3”); } Condicional Composto – IF – ELSE 5 Neste controle de fluxo se a condição for verdadeira, será executado o comando 1; caso contrário, se a condição for falsa, será executado o comando 2, conforme sintaxe. if condição printf(comando) else printf(comando); O exemplo do programa que segue ilustra a comparação se a soma de dois números lidos são menores que o terceiro lido, caso contrário será maior. #include<stdio.h> int n1, n2, n3; main() { printf(“\n Digite três números:”); scanf(“%d%d%d”, &n1, &n2, &n3); if ((n1 + n2 < n3)) printf (“A soma dos números é menor que n3”); else printf(“A soma dos números é maior que n3”); } É importante lembrar que a instrução que antecede o comando ELSE deve sempre terminar com o ponto e virgula (;). Caso isso não ocorra haverá um erro de compilação. Case – SWITCH Esta instrução adapta-se particularmente à tomada de decisões em que o número de possibilidades elevado (em geral maior que 2, se não usa-se o if- else), de forma a reduzir a complexidade de if-else consecutivos e aninhados. Sintaxe: switch (variável/expressão) { case valor1: lista de comandos; break; case valor1: lista de comandos; break; 6 ........ default: lista de comandos; } Em alguns programas existem comandos que são mutuamente exclusivos, ou seja, se um comando for executado, os demais não serão. Operadores Quando se desenvolve utilizando condições muitas vezes faz-se necessário o uso de operadores lógicos, aritméticos e relacionais para que possíveis combinações sejam realizadas. Os operadores aritméticos são os seguintes: + (adição), * (multiplicação) e / (divisão). No caso da divisão entre os números inteiros, o resultado é truncado, ou seja, exato. Para que se possa trabalhar com o resto da divisão é necessário que seja utilizado o operador %, conforme ilustra o exemplo. Expressão Tem o valor 22 / 3 7 22 % 3 1 Além dos três operadores citados acima, pode-se trabalhar na linguagem de programação C com os operadores de incremento e decremento (operadores unários). Operadores unários ++ e – são utilizados para fazerem diretamente estas operações sem a necessidade do comando de atribuição. i = i + 1; i++; i = i - 1; i--; Na linguagem C os operadores relacionais são: == (igual a), != (diferente de), > (maior que), < (menor que), >= (maior ou igual a ) e <= (menor ou igual a ). O 7 resultado de dois valores conectados por um operador relacional será 0 para falso ou 1 para verdadeiro, conforme exemplo. Expressão Tem o valor 5 < 3 0 5 > 3 1 5 == 5 1 5 != 1 1 3 == 5 0 Os operadores lógicos binários são && (e) e || (ou). O resultado de suas operações também será 0 (falso) ou 1 (verdadeiro). Expressão Tem o valor 5 || 3 1 5 || 0 1 5 && 3 1 (i >5) && (i<=7) 1 se i for maior que 5 e menor ou igual a 7 0 qualquer outro caso O operador de negação (!) inverte o sentido do valor que o segue. Ou Seja, qualquer valor não zero será convertido para 0 e o valor 0 será convertido para 1. Expressão Tem o valor !5 0 !0 1 Comandos de Repetição 8 Os comandos de repetição na linguagem C são definidos em três tipos, saber: while, do while e for. While A instrução while (também conhecida como laço while) executa uma instrução ou bloco de instruções enquanto uma determinada condição for verdadeira. Esta instrução sempre testa a condição no início do código. A sintaxe é: while (condição) comando; Exemplo: #inlcude<stdio.h> main() { int numero; printf(“Digite um número (diferente de zero): “); scanf(“%d”, &numero); while (numero == 0) { printf(“Inválido. Digite novamente: “); scanf (“%d”, &numero); }printf(“Número válido!!!”); } Do – While 9 Esta instrução teste a condição no final do comando, isto é, os comados internos ao laço são executados pelo menos uma única vez. Sintaxe: do { comando; } while (condição) Exemplo: #include <stdio.h> void main() { int num; do { printf(“Digite um número: ”); scanf(“%d”, &num); } while (num == 0); printf (“Ok. Número válido”); } For A instrução for (ou laço for, como é verdadeiramente conhecida), adapta-se particularmente a situação em que o número de iterações é conhecido a priori. A sintaxe do laço for é definida como segue: 10 for (inicialização; condição; incremento) declaração; O seu funcionamento pode ser resumido da seguinte forma: - O código presente em inicialização é executado. Normalmente são iniciadas as variáveis presentes no laço. Esse componente do laço é executado apenas uma única vez. - A condição é avaliada. - Se o resultado da condição retornar o valor Falso (zero), então o laço for termina e o programa continua na instrução imediatamente seguinte. - Se o resultado da condição retornar o valor Verdadeiro, então o laço for executada a instrução (ou bloco de instruções ) do laço. - Depois de executada a instrução presente no laço, é executado o incremento. Nesse componente do laço for são normalmente realizadas as alterações necessárias para passar à próxima iteração do laço (incremento ou decremento de variáveis etc). Exemplo de código utilizando o laço for: #include<stdio.h> int main() { int count; for (count=1; count<=100; count ++) printf (“%d”, count); } Síntese da rota: 11 - As funções de entrada e saída que são utilizadas na linguagem de programação C são printf() e scanf(). - Ambas funções podem utilizar expressões de controle que são úteis para substituírem o argumento da variável. - Na linguagem C pode-se utilizar comandos condicionais, possibilitando ao usuário criar condições e combinações destas condições na resolução de seus problemas. As condições são if, if-else e switch. - Para que essas condições possam ser combinadas entre si operadores aritméticos, lógicos e relacionais são utilizados. - Além dos condicionais a linguagem possibilita que comandos possam ser repetidos uma única vez ou mais vezes de acordo com a necessidade do código. Para isso são utilizados os comandos while, do while e for. Referencia da rota: http://www.dainf.ct.utfpr.edu.br/~pbueno/Arquivos/ApostilaEricoLisboa.pdf Damas, Luis – Linguagem C / Luís Damas: tradução João Araújo Ribeiro, Orlando Bernardo Filho. – 10. Ed. – [Reimpr.]. – Rio de Janeiro: LTC, 2013.
Compartilhar