Buscar

Aula 12


Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 8 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Continue navegando


Prévia do material em texto

Algoritmos Aplicados a Engenharia 
 Aula 12 
Os direitos desta obra foram cedidos à Universidade Nove de Julho 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Este material é parte integrante da disciplina, oferecida pela UNINOVE. 
O acesso às atividades, conteúdos multimídia e interativo, encontros virtuais, fóruns de 
discussão e a comunicação com o professor devem ser feitos diretamente no ambiente 
virtual de aprendizagem UNINOVE. 
 
 
Uso consciente do papel. 
Cause boa impressão, imprima menos. 
 
Aula 12: Introdução a linguagem C (Continuação) 
Objetivo: Ao final desta aula o aluno entenderá a estrutura básica de um programa 
feito na linguagem C/ C++ e poderá montar programas básicos com entrada e saída 
de dados. 
 
 
Operadores de Atribuição Aritmética 
Muitas vezes queremos alterar o valor de uma variável realizando alguma 
operação aritmética com ela. Como por exemplo: i = i + 1 ou val = val * 2. Embora 
seja perfeitamente possível escrever estas instruções, foram desenvolvidas na 
linguagem C, instruções otimizadas com o uso de operadores ditos operadores de 
atribuição aritmética. Os símbolos usados são (+=, -=, *=, /= , %=). Deste modo as 
instruções acima podem ser rescritas como: i += 1 e val *= 2, respectivamente. 
Sintaxe: A sintaxe da atribuição aritmética é a seguinte: 
var <operador atribuição aritmética> exp; 
onde var é o identificador da variável e exp é uma expressão válida. 
Exemplo: Observe as atribuições aritméticas abaixo e suas instruções 
equivalentes: 
 
Atribuição aritmética Instrução equivalente 
i += 1; i = i + 1; 
j -= val; j = j - val; 
num *= 1 + k; num = num * (1 + k); 
troco /= 10; troco = troco / 10; 
resto %= 2; resto = resto % 2; 
 
 
Operadores Incrementais 
Em programação existem instruções muito comuns chamadas de incremento 
e decremento. Uma instrução de incremento adiciona uma unidade ao conteúdo de 
uma variável. Uma instrução de decremento subtrai uma unidade do conteúdo de 
uma variável. 
 
Existem, em C, operadores específicos para realizar as operações de 
incremento (++) e decremento (--). Eles são genericamente chamados de 
operadores incrementais (Tabela 1). 
 
Instrução Equivalente 
++ var var = var + 1 
var ++ var = var + 1 
-- var var = var - 1 
var -- var = var - 1 
Tabela 1 –A sintaxe dos operadores incrementais é a seguinte: 
 
onde var é o nome da variável da qual se quer incrementar ou decrementar 
um unidade. 
Observe que existem duas sintaxes possíveis para os operadores: pode-se 
colocar o operador à esquerda ou á direita da variável. Nos dois casos o valor da 
variável será incrementado (ou decrementado) de uma unidade. Porém se o 
operador for colocado á esquerda da variável, o valor da variável será incrementado 
(ou decrementado) antes que a variável seja usada em alguma outra operação. 
Caso o operador seja colocado à direita da variável, o valor da variável será 
incrementado (ou decrementado) depois que a variável for usada em alguma outra 
operação. 
Exemplo: Observe o fragmento de código abaixo e note o valor que as 
variáveis recebem após a execução da instrução: 
Valor das variáveis 
int a, b, c, i = 3; // a: ? b: ? c: ? i: 3 
a = i++; // a: 3 b: ? c: ? i: 4 
b = ++i; // a: 3 b: 5 c: ? i: 5 
c = --i; // a: 3 b: 5 c: 4 i: 4 
 
Operadores Relacionais e Lógicos 
A chave para a flexibilidade de um algoritmo é a tomada de decisões através 
da avaliação de condições de controle. Uma condição de controle é uma expressão 
lógica que é avaliada como verdadeira ou falsa. Uma expressão lógica é construída 
com operadores relacionais e lógicos. 
 
 
 Operadores relacionais 
Operadores relacionais verificam a relação de magnitude e igualdade entre 
dois valores. Os operados relacionais em C são os mesmos estudos anteriormente. 
Sintaxe: A sintaxe das expressões lógicas é: 
expressão_1 operador expressão_2 
onde expressão_1 e expressão_2 são duas expressões numéricas quaisquer, 
e operador é um dos operadores relacionais. 
Ao contrário de outras linguagens, em C não existem tipos lógicos, portanto o 
resultado de uma expressão lógica é um valor numérico: uma expressão avaliada 
verdadeira recebe o valor 1, uma expressão lógica avaliada falsa recebe o valor 0. 
Se os operandos forem de tipos diferentes haverá uma conversão de tipo 
antes da avaliação da expressão. 
 
 Operadores lógicos 
São três os operadores lógicos de C: &&, || e !. Estes operadores possuem o 
mesmo significado dos operadores lógicos Booleanos AND, OR e NOT. 
Sintaxe: A sintaxe de uso dos operadores lógicos: 
expr_1 && expr_2 
expr_1 || expr_2 
!expr 
onde expr_1 , expr_2 e expr são expressões quaisquer. Exemplo if(a>10 && 
a<20) 
 
Operador Condicional 
 O operador condicional (?:) é usado em expressões condicionais. Uma 
expressão condicional pode ter dois valores diferentes dependendo de uma 
condição de controle. 
Sintaxe: A sintaxe de uma expressão condicional é: 
condição ? expressão_1 : expressão_2 
onde expressão_1 e expressão_2 são duas expressões quaisquer, e 
condição é uma expressão lógica que será avaliada primeiro. Se o valor de condição 
for 1, isto é, verdadeiro, então a expressão condicional assumirá o valor de 
 
expressão_1. Caso contrario assumirá o valor de expressão_2. Uma expressão 
condicional é equivalente a uma estrutura de decisão simples. 
Exemplo: Observe as expressões condicionais abaixo e verifique o resultado 
de sua avaliação. Admita que i, j e k são variáveis tipo int com valores 1, 2 e 3, 
respectivamente. 
 
Expressão Valor 
i ? j : k 2 
j > i ? ++k : --k 4 
k == i && k != j ? i + j : i - j -1 
i > k ? i : k 3 
 
A estrutura básica de um programa em C/ C++ 
Um programa em C/ C++ consiste de uma ou mais funções. Abaixo segue um 
programa do que se pode chamar de o menor programa possível: 
void main() 
{ 
} 
A função que compõe este programa é chamada main. Os parênteses após o 
nome indicam que esta é uma função. A função main deve estar presente em 
qualquer programa na linguagem C e é a primeira função a ser executada. Se um 
programa tiver apenas uma função, ela deverá receber o nome main. 
As chaves de abertura “{“ e fechamento “}” devem compor o início e o fim do 
programa, respectivamente. 
 
Montando o primeiro programa 
Em vez de montar um programa vazio, como o apresentado acima, vamos 
adicionar uma instrução para que o programa faça algo. 
 
#include <stdio.h> 
#include <stdlib.h> 
int main() { 
printf("Ola Mundo!!!\n\n\n"); 
system("PAUSE"); 
return 0; 
} 
 
Após compilar e rodar o programa acima, a seguinte mensagem será exibida 
na tela: Ola Mundo! 
 
Análises sobre o 1º programa 
Sempre que uma função for utilizada, deve-se incluir a biblioteca que a 
contém. No exemplo acima, a função printf() é uma função do tipo saída de dados e, 
para ser executada, a linha #include <stdio.h> foi adicionada ao início do programa. 
O arquivo stdio.h possui declarações de funções úteis para entrada e saída de 
dados (std vem do inglês standard, e io vem de Input/Output, portanto significa 
entrada e saída padronizadas). Já a biblioteca stdlib.h inclui a função system(), que 
é responsável por executar comandos internos do sistema operacional ou um 
programa (.EXE, .COM ou .BAT). Em nosso programa estamos executando o 
comando PAUSE. 
Sempre que um programa for escrito, é importante escrever comentários a 
respeito do que esperamos que aconteçaem cada parte do programa. Comentários 
iniciam-se por /* e terminam em */. Sempre que o compilador encontrar esse 
comando, ele desconsiderará tudo que estiver depois dele. Um comentário pode, 
inclusive, ter várias linhas. 
A linha void main() define uma função de nome main. A palavra void indica 
que esta função não retorna nenhum valor. O conteúdo das chaves { } será 
executado de forma sequencial. 
O primeiro comando inserido nesse código é a função printf(), que possui o 
argumento “Ola Mundo!” A função do printf() é para imprimir um argumento na tela. 
Neste caso, o \n inserido na função printf() é a constante especial chamada de 
constante barra invertida. Essa constante é interpretada como uma mudança de 
linha e não é impressa na tela. O comando system(“PAUSE”) congela a tela com a 
impressão realizada. 
É extremamente importante notar que todos os comandos em C terminam em 
ponto e vírgula (;). 
 
 
 
 
 
 
 
Referências 
DASGUPTA, Sanjoy; PAPADIMITRIOU, Christos; VAZIRANI, Umesh. Algoritmos. 
São Paulo: McGraw Hill, 2009. 
HEINEMAN, George T.; POLLICE, Gary; SELKOW, Stanley. Algoritmos: o guia 
essencial. Rio de Janeiro: Alta Books, 2009. 
MANZANO, André Luiz N. G.; MANZANO, Maria Izabel N. G. Estudo dirigido de 
informática básica. São Paulo: Érica, 2008. 
MANZANO, José Augusto N. G. Estudo dirigido de linguagem C. São Paulo: Érica, 
2009. 
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de Oliveira. Algoritmos, 
Lógica para desenvolvimento de programação de computadores. São Paulo: Érica, 
19 ed., 2006. 
MIZRAHI, Victorine Viviane. Treinamento em linguagem C. São Paulo: Pearson, 
2008. 2v. 
SCHILDT, Herbert. Mayer. C completo e total. São Paulo: Pearson, 2006. 
VILARIM, Gilvan. Algoritmos de programação para Iniciantes. São Paulo: Ciência 
Moderna, 2004.