Baixe o app para aproveitar ainda mais
Prévia do material em texto
Disciplina Linguagem de Programação Designer Educacional Giselle Pupo Professor Cassiana Fagundes da Silva Conversa Inicial Olá aluno! Preparado para iniciar o estudo dos temas da segunda aula da disciplina de Linguagem de Programação? Acesse o material online e confira o trecho da videoaula, nela a professora Cassiana falará um pouco sobre os assuntos que iremos abordar no encontro de hoje! Contextualizando Na linguagem de programação C, além das funções de entrada e saída, existem estruturas de controle, que permitem dominar a sequência das ações lógicas de um programa. Basicamente, existem dois tipos de estruturas de controle: estruturas de decisão e as estruturas de repetição. A primeira permite executar um entre dois ou mais blocos de instruções. Já a estrutura de repetição permite que um bloco de instruções seja executado repetidamente uma quantidade controlada de vezes. Muitas vezes para que estas estruturas possam ser utilizadas na execução de determinadas operações faz-se necessário a utilização de operadores. Os operadores podem ser de atribuição, aritméticos, de atribuição aritmética, incrementais, relacionais, lógicos e condicionais. Objetivos da Aula Gerar no aluno o conhecimento necessário para que possa entender e classificar os seguintes temas: Funções de Entrada e Saída Comandos de Controle de Fluxo Comandos de Repetição Funções de Entrada e Saída Os principais comandos de entrada e saída são denominados printf() e scanf(). Nessa rota de aprendizagem, vamos entender quais são as suas funções e esse conhecimento será utilizado nas próximas aulas! 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, apesar de não fazer parte da definição da linguagem C, sendo incluída na biblioteca stdio h, conforme vimos na aula anterior. Essa 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, ....) A chamada expressão de controle já é definida, que pode apresentar alguns códigos. 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. Confira na próxima página uma tabela que apresenta os chamados Strings ou Expressões de Controle! Além das expressões de controle, também é possível utilizar na sintaxe da função printf() códigos especiais que permitem uma melhor visualização na tela do usuário. Confira a seguir uma tabela com exemplos de códigos especiais: A seguir, confira alguns exemplos de linhas de comando da função printf(): 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 Na sequência, confira exemplos utilizando toda a estrutura básica de um programa desenvolvido em linguagem C: #include <stdio.h> main() { char letra; letra = ‘A’; printf (“%c”, letra); } Função scanf() Outra função de entrada e saída que pode ser utilizada na linguagem de programação C é a função scanf(). Esta função “lê” do teclado os dados e insere os valores digitados pelos usuários nas variáveis utilizadas como parâmetros da função, conforme o exemplo abaixo: scanf(“expressão de controle”, &argumento1, &argumento2, ...); A expressão de controle utiliza os mesmos códigos da função printf() mostrados na primeira tabela apresentada na nossa aula. 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. Confira dois exemplos de programas utilizando as funções de entrada e saída: #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); sub = num1 – num2; printf(“O resultado da subtração é %d”, sub); } Não deixe de acompanhar a videoaula, no material online, preparada pela professora Cassiana, preste bastante atenção e aproveite para reiterar todo o conhecimento estudado até agora. Comandos de Controle de Fluxo São os comandos de controle de fluxo em linguagem de programação que permitem ao programador alterar a sequência de execução do programa. Dentre estes comandos, podemos citar o condicional simples, condicional composto e o case. Pronto para estudar conhecer cada um deles a seguir? Vamos lá! Condicional Simples – IF Este comando condicional somente é executado se a sua condição for verdadeira, conforme descreve sua sintaxe: if (condição) printf(comando); Clique no botão a seguir, nele é exposto um exemplo de 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 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 a seguir, mostra uma comparação de um caso em que a soma de dois números lidos seja menor que a terceiro, 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, sempre, a instrução que antecede o comando ELSE não pode terminar com ponto e vírgula (;), caso isso 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 se usa o if-else), de forma a reduzir a complexidade de if-else consecutivos e aninhados. Em alguns programas existem comandos que são mutuamente exclusivos, ou seja, se um comando for executado, os demais não serão. Observe: switch (variável/expressão) { case valor1: lista de comandos; break; case valor1: lista de comandos; break; ........ default: lista de comandos; } 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. Confira os operadores aritméticos: + (adição) *(multiplicação) / (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 operador %, conforme o exemplo abaixo: 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 resultado de dois valores conectados por um operador relacional será 0 para falso ou 1 para verdadeiro, confira o exemplo: Expressão Tem o valor 5 < 3 0 3 > 5 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 em 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 Acompanhe, no material online, a videoaula preparada pela professora Cassiana, com as explicações sobre os assuntos abordados neste tema! Comandos de Repetição Os comandos de repetição na linguagem C são definidos em três tipos, saber: while, do while e for. Acompanhe a videoaula preparada pela professora Cassiana, no material online, e preste atenção nas explicações! 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. Confira: 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 Esta instrução testa a condição no final do comando, isto é, os comados internos ao laço são executados pelo menos uma única vez. 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: for (inicialização; condição; incremento) declaração; Exemplo: #include<stdio.h> int main() { int count; for (count=1; count<=100; count ++) printf (“%d”, count); } O funcionamento da instrução for pode ser resumido nos seguintes tópicos: 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 executa 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). Na Prática Pronto para colocar em prática todo o conhecimento visto na aula de hoje? Resolva os exercícios a seguir! QUESTÃO 1 - Dada a sequência de código a seguir, assinale a alternativa verdadeira: if (média > 5) && (média <7) printf (“Exame final”); a. A instrução prinft somente será executada se a resposta da primeira e da segunda condição for verdadeira. b. A instrução printf será executada se a média for maior que 5 e menor que 7. c. A instrução printf será executada se a média for maior igual a 5 e menor que 7. d. A instrução printf será executada se a média for menor que 5 e menor que 7. e. A instrução printf será executada se a média for maior que 5 e menor igual a 7. Gabarito: A afirmativa “a” está correta! QUESTÃO 2 - Considere o trecho de código na Linguagem C: int main() { int i; float f; int v[10] i 3; v[f] = 45; while { } } Quantos erros semânticos o código possui? a. 4 b. 2 c. 3 d. 1 e. 5 Gabarito: A afirmativa “d” está correta! QUESTÃO 3 - Dado o trecho de código em linguagem C: n = 5; x = ++n; printf (“O valor de n eh: ", n);; printf (“O valor de x eh: ", x); A saída correta para os valores de n e x respectivamente são: a. n = 6 ; x = 6 b. n = 5 ; x = 6 c. n = 6 ; x = 5 d. n = 6 ; x = 7 e. n = 7 ; x = 6 Gabarito: A afirmativa “a” está correta! Síntese Depois de todo o conteúdo visto no estudo dos temas apresentados na aula de hoje, podemos resumir nosso encontro nos tópicos a seguir: 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. Agora, acompanhe a síntese da aula de hoje preparada pela professora Cassiana no material online! Referências Bibliográficas DAMAS, Luis. Linguagem em C. 10ª ed. Trad. João Araujo Ribeiro, Orlando Bernardo Filho. Rio de Janeiro: LTC, 2013. LISBOA, Erico Fagundes Anicet Lisboa. Linguagem C. Rio de Janeiro, 2011. (Apostila). Disponível em: http://www.dainf.ct.utfpr.edu.br/~pbueno/Arquivos/ApostilaEricoLisboa.pdf
Compartilhar