Você está na página 1de 45

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()
{ #include <stdio.h>
int idade; main() {
scanf (“%d”, &idade); int num1, num2, sub;
printf (“ A idade lida eh %d”, idade); 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

um comando for executado, os demais não


Esta instrução adapta-se particularmente
serão.
à tomada de decisões em que o número de
possibilidades elevado (em geral maior que 2, Observe:
se não se usa o if-else), de forma a reduzir a
switch (variável/expressão)
complexidade de if-else consecutivos e
{
aninhados. case valor1: lista de comandos;
break;
Em alguns programas existem comandos
case valor1: lista de comandos;
que são mutuamente exclusivos, ou seja, se
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) O operador de negação (!) inverte o
e || (ou). O resultado de suas operações sentido do valor que o segue, ou seja, qualquer
também será 0 (falso) ou 1 (verdadeiro). valor não zero será convertido para 0 e o valor

Expressão Tem o valor 0 será convertido para 1.

5 || 3 1

5 || 0 1 Expressão Tem o valor

5 && 3 1 !5 0

(i >5) && (i<=7) 1 se i for maior que !0 1


5 e menor ou igual a 7. 0
em qualquer outro caso.
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