54
Professor: Aquiles Burlamaqui Construção de Algoritmos Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Embed Size (px)

Citation preview

Page 1: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Construção de AlgoritmosAULA 02

Aquiles BurlamaquiUERN2007.1

Page 2: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

…previously Apresentação da Disciplina Definição de algoritmo Conceitos de memória, variáveis e

constantes. Tipos básicos de dados

Page 3: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Variáveis Guardar dados

Nome Tipo Informação

Pseudocódigo <Tipo>:<Lista de Variáveis

Ex:Inteiro: idade Real : media,n1,n2,n3,n4,mf Lógico : passou, flag Literal : letra

Page 4: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Variáveis Existem algumas regras básicas que

regulam a o batismo de variáveis. Estas regras básicas são: Todo nome só pode conter letras e dígitos; O caractere "_" é contado como uma letra; Todo primeiro caractere deve ser sempre uma

letra; Letras maiúsculas e minúsculas são

consideradas caracteres diferentes;

Page 5: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Constantes Reserva um espaço na memória acessado através do

seu endereço que é vinculado no algoritmo a um nome; Esse espaço possui tamanho necessário para guardar

seu tipo de dado, e guarda um valor fixo do início ao final do programa;

Sintaxe: Constante <nome_da_constante> = <valor>;

Ex: Constante pi = 3,14;

Page 6: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Conteúdo Programático Unidade I

Fundamentos de Lógica de Programação Algoritmo (metalinguagem) Conceitos de memória, variáveis e constantes. Tipos básicos de dados Operadores aritméticos, relacionais e lógicos. Comandos básicos de entrada e saída e atribuição Conceito de bloco de comandos Estruturas de controle de fluxo – condicionais (se, se-senão e caso) Estruturas de controle de fluxo – repetições (para, enquanto e repita-enquanto)

Estruturas de Dados Homogêneas (vetores e matrizes)

Unidade II Estruturas de Dados Heterogêneas (registros) Modularização

Variáveis locais e globais Funções Passagem de parâmetros por valor e por referência Funções recursivas Biblioteca de funções

Unidade III Algoritmos de Busca Ponteiros

Conceitos Operador endereço e operador de acesso indireto Alocação dinâmica de memória

Arquivo

Page 7: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Expressões Expressão

é uma combinação de variáveis, constantes e operadores que, uma vez avaliada, resulta num valor

Operadores Quanto ao número de operandos

Unários Binários

Quanto ao tipo de dado Operadores Aritméticos Operadores Lógicos Operadores Literais Operadores Relacionais

Page 8: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Operadores Aritméticos Operador Tipo Operação Prioridade

+ binário adição 4 - “ subtração 4

* “ multiplicação 3 / “ divisão 3 ** “ exponenciação 2 + unário manutenção de sinal 1 - “ inversão de sinal 1

Page 9: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Operadores Aritméticos Vamos considerar alguns exemplos para mostrar

como estas regras são aplicadas. Considere as seguintes variáveis:

A=2.0 B=4.0 C=1.0 Vamos então analisar expressões com estas variáveis

e seus resultados. A*B-C A*(B-C) B+A/C+5 (B+A)/(C+5)

Page 10: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Operadores Aritméticos1)5x3 + 7x2 – 3x – 1

Resp.: 5.0*x**3 + 7.0*x**2 – 3.0*x –1.0

2)x0 + v0t – 1 gt2

2Resp.:xo + vo*t – 0.5*g*t**2

Page 11: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Operadores LógicosOperador Tipo Operação Prioridade .OU. binário disjunção 3 .E. binário conjunção 2 .NÃO. unário negação 1

Page 12: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Operadores Relacionais

Operador Comparação = igual<> diferente < menor<= menor ou igual > maior>= maior ou igual

Page 13: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Operadores Literais Não há padronização para seus operadores.

Vamos considerar apenas o operador de concatenação ( + ) .

Exemplo: “sonha” + “dor” resulta “sonhador”

Page 14: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Avaliação de Expressões

Regras: Observar a prioridade dos operadores.

Se houver empate, considera-se a expressão da esquerda para a direita.

Os parênteses alteram a prioridade, forçando a avaliação da subexpressão em seu interior.

Page 15: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Instruções Primitivas

Entrada Saída Atribuição

Page 16: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Entrada

Sintaxe : Leia ( < lista_de_variáveis > )Semântica : Os dados são fornecidos ao

computador por meio de um dispositivo de entrada e armazenados nas posições de memória das variáveis cujos nomes aparecem na lista.

Exemplo:Leia ( x )

Leia ( a , b , c )

Page 17: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

SaídaSintaxe : Escreva ( < lista_de_expressões > )

Semântica : Os argumentos são enviados para o dispositivo de saída. No caso de uma lista de variáveis, o conjunto de cada uma delas é pesquisado na posição de memória correspondente a variável. No caso de argumento constante(número, literal ou lógico) este é enviado diretamente ao referido dispositivo. E no caso de expressões, após sua avaliação, segue como uma constante.

Exemplos: Escreva (“Programa elaborado pelo aluno

Thiago.”)Escreva (“Digite um número inteiro positivo:”)Escreva (“Lados do triângulo: “, L1 , L2 , L3 )

Escreva (“Area do circulo = “, pi*r**2)Escreva (“Area = “, x*y, “Perimetro = “, 2*(x + y))

Page 18: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Saída Regras Básicas (Interface com o Usuário:

fase de execução) Toda vez que um programa estiver esperando

que o usuário forneça a ele um determinado dado (operação de leitura), ele deve antes enviar uma mensagem dizendo o que o usuário deve digitar, por meio de um instrução de saída.

Antes de enviar qualquer resultado ao usuário, um programa deve escrever uma mensagem explicando o significado do mesmo.

Page 19: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Atribuição É a principal maneira de se armazenar uma

informação numa variável. Sintaxe :< nome_da_variável > < expressão > Semântica : 1) avaliação da expressão

2) armazenamento do valor resultante na posição de memória correspondente à variável que aparece à esquerda do comando.

Importante : Deve haver compatibilidade entre o tipo de dado

resultante da avaliação da expressão e o tipo de dado da variável ( a não ser, propositadamente, com tipos numéricos).

Page 20: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Controle de Fluxo de um Programa

Comando Composto Estrutura Seqüencial Estrutura de Decisão

Se Caso

Estrutura de Repetição Para Enquanto Repita

Page 21: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Comando Composto É um conjunto de comandos simples como

atribuição, entrada, saída ou algumas construções (estruturas) apresentadas a seguir.

Ex: Escreve((a+b)/15) ou bas =(- b + (b * b – 4.* a * c)**0.5)/(2 * a)

Page 22: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Estrutura Seqüencial

Cada comando é executado somente após o término do comando anterior.

Ex:Escreve(“Qual o valor da conta?”)Leia(b);a b * 0.1Escreve(“10 % do garçom dá:”+a)

Page 23: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Estrutura de Decisão

Classificação quanto ao número de condições: uma condição ( decisão simples ) :

estrutura do SE várias condições ( decisão

múltipla ) : estrutura do ESCOLHA

Page 24: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

SeSintaxe: Se ( < condição > ) então Se ( < condição > ) então

< comando1 > < comando1 >senão Fim_se

< comando2 >Fim_se

Page 25: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Se AninhadosAlgoritmo Max_min

Real: a, b, c, max, minInício

Escreva (“Digite tres numeros: “)Leia (a, b, c)Se ( a < b ) então

Se ( b < c ) entãomin amax c

senãomax bSe ( a < c ) então

min asenão

min cFim_se

Fim_sesenão

Se ( b > c ) entãomin cmax a

senãomin bSe ( a > c ) então

max asenão

max cFim_se

Fim_seFim_seEscreva (“Maior numero = “, max)Escreva (“Menor numero = “, min)

Fim

Page 26: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Escolha...Caso Sintaxe:

Escolha(<expressão>)Caso(<condição1>)faça

<comando1>Caso(<condição2>)faça

<comando2>...Caso(<condiçãot>)faça

<comandot>senão

<comandok>Fim_escolha

Page 27: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Escolha...CasoAlgoritmo Calculadora

Real: num1,num2Literal[2]: op

InicioEscreva(“Digite um numero, o operador e outro numero: “)Leia(num1,op,num2)Escolha(op)

Caso(op=”+”)façaEscreva(num1,op,num2,” =”, num1+num2)

Caso(op=”– “ )façaEscreva(num1,op,num2,” =”, num1 – num2)

Caso(op=”* “)façaEscreva(num1,op,num2,” =”,num1* num2)

Caso(op=” / ”)façaSe(num2<>0)então

Escreva(num1,op,num2,” =”,num1/ num2)Senão

Escreva(“Não existe divisão por zero.”)Fim_se

SenãoEscreva(“Operador desconhecido.”)

Fim_escolhaFim

Page 28: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Estrutura de Repetição

Tipos Contados

Para – Faça Condicionais

ENQUANTO – FAÇA REPITA – ATÉ

Page 29: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Para- Faça

Sintaxe:Para <var> de <ini> até <fim> passo <inc> faça

<comando>Fim_para

Page 30: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Algoritmo FatorialInteiro: num,k,fat

InícioEscreva(“Digite um número:”)Leia(num)Se(num >= 0)então

fat 1Para k de 2 até num passo 1 faça

fat fat*kFim_paraEscreva(“Fatorial de”, num, “ igual a

“ ,fat)Senão

Escreva(“Não existe fatorial de número negativo.”)

Fim_seFim

Page 31: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Enquanto - FaçaSintaxe:

Enquanto (<expressão lógica>)faça<comando>

Fim_enquanto

Page 32: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Algoritmo MDCInteiro: a, b

InícioEscreva (“Digite dois numeros inteiro positivos: “)Leia (a,b)Se ( a>0 .e. b>0 ) então

Enquanto ( a< > b ) façaSe ( a > b ) então

a a – b senão

b b – a Fim_se

Fim_enquantoEscreva (“ mdc = “, a)

SenãoEscreva (“Dados incorretos.”)

Fim_seFim

Page 33: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Repita - Até

Sintaxe:Repita <comando>Até (<expressão lógica>)

Page 34: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Algoritmo DivisoresInteiro: num, div

InícioRepita

Escreva (“Digite um numero inteiro positivo: “)Leia (num)

Até (num > 0)Escreva (“Divisores do número “, num)div 1Repita

Se ( num / div * div = num) entãoEscreva (div)

Fim_sediv div + 1

Até (div > num)Fim

Page 35: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Linguagem C

Page 36: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Linguagem de Programação C Criada em 1972 por Dennis Ritchie

Inicialmente para uso no UNIX Características

Linguagem de programação imperativa Apenas 32 palavras-chave Estruturação modular, módulos compilados

separadamente Ponteiros como tipo de dado Passagem de argumentos por valor Facilidade de trabalhar os dados em bits

Nível intermediário entre nível de máquina e alto nível

Page 37: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Linguagem de Programação C Uso:

Desenvolvimento de software de sistemas operacionais: Drivers; Kernel; Api; Etc.

Desenvolvimento de sistemas embutidos; Etc.

Page 38: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Palavras reservadas do ANSI C

auto double int struct

break else long switch

case enum register typedef

char extern return union

const float short unsigned

continue for signed void

default goto sizeof volatile

do if static while

Page 39: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Estrutura básica de um programa em C

/* Modelo de programa em C*/

int main() {

return(0);}

Page 40: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Programa Olá Mundo Copie o texto a seguir em um editor de textos, e salve com

um nome qualquer, mas extensão .c

/* Programa Olá Mundo*/

#include <stdio.h>

int main() {

printf(“Olá mundo!”);return(0);

}

Page 41: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Compilando um código em C Após escrever e salvar um código em c, vá para o

terminal e digite:

gcc <nome_do_arquivo.c> -o <nome_do_programa>

Em seguida, digite no terminal:

./<nome_do_programa>

Observe o resultado da saída no terminal.

Page 42: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Comentários

Por área selecionada /* - início da área de comentário<texto comentado>...

*/ - fim da área Por linha

// <linha comentada>

Page 43: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Tipos Primitivos

Tipo Especificação Bytes Valores

char Armazena um byte com sinal. 1 -128 a 127

unsigned char

Armazena um byte sem sinal. 1 0 a 255

int Inteiro. 4 -2,147,483,648 a +2,147,483,647

short int Inteiro curto. 2 -32,768 a +32,767 long int Inteiro longo. 4 -2,147,483,648 a

+2,147,483,647

Page 44: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Tipos Primitivos

Tipo Especificação Bytes Valores

unsigned int Inteiro sem sinal. 4 0 a +4,294,967,295 unsigned short

Inteiro curto sem sinal. 2 0 a +65,535

unsigned long

Inteiro longo com sinal. 4 0 a +4,294,967,295

float Real. 4 3.4E-38 a 3.4E+38

double Real com dobro de precisão. 8 1.7E-308 a 1.7E+308

long double Real com presisão de 19 dígitos. 10 3.4E-4932 a 3.4E+4932

void Nenhum valor. 0

Page 45: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Declaração de constantes e variáveis

Variáveis:tipo <identificador>; ex: int x;

Constantesconst tipo <identificador>=<valor>; ex: const int numero=5;#define <identificador> valor ex: #define numero 5

Page 46: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Operador Descrição

+ Soma

- Subtração

* Multiplicação

/ Divisão (inteira ou

real)

%Resto da divisão

inteira

- sinalização negativa

Operadores Aritméticos

Page 47: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Operadores de incremento e decremento Incremento

++ Decremento

--

Ex:int num1, num2;

num1=5;num2 = num1++; //num1=6; num2=5;

num1=5;num2 = ++num1; //num1=6; num2=6;

num1=5;num2 = num1--; //num1=4; num2=5;

num1=5;num2 = -- num1; //num1=4; num2=4;

Page 48: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Operadores Binários Operam sobre os bits de um dado

Operador Operação

& & E

|| Ou

^ Ou-exclusivo

>> Deslocamento para a direita

<< Deslocamento para a esquerda

~ Não

Page 49: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Operadores Relacionais

Operador Operação

== Igual

!= Diferente

< Menor

> Maior

<= Menor ou igual

>= Maior ou igual

Retornam 1 se a expressão for verdadeira, e 0 se for falsa.

Page 50: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Operadores Lógicos

E&& ex: (5 >= 7) && ( (4/2) == 2)

Ou|| ex: (5 >= 7) || ( (4/2) == 2)

Page 51: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Atribuição Atribuição simples

<variável> = valor; ex: int num1=2;

Atribuição composta<variável> <op>= <valor>;para <op> = {+, -, *, /, %, <<, >>, &, |, ^} ex:num1 += 1;

Page 52: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Entrada e Saída

Entradascanf(“ <%tipo>”, &<variável>);

Saídaprintf(“texto”);printf(“texto %<tipo1> texto %<tipoN>

texto”, <variável 1>,...,<variável N>);

Page 53: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

%tiposSímbolo Significado.

%d Inteiro.

%u Inteiro sem sinal.

%f Real.

%e Real no formato exponencial.

%g Escolher %e ou %f de acordo com o tamanho do dado.

%c Caractere.

%s Cadeia de caracteres.

%o Número em octal (sem sinal).

%x Número em hexadecimal (sem sinal).

Page 54: Construção de Algoritmos Professor: Aquiles Burlamaqui Construção de Algoritmos AULA 02 Aquiles Burlamaqui UERN 2007.1

Professor: Aquiles Burlamaqui

Construção de Algoritmos

Exercício1. Escreva um programa em C que leia um dado do tipo inteiro e em seguida escreva o

dobro do seu valor.2. Escreva um algoritmo que leia três números e imprima o maior deles. 3. Escreva um algoritmo que leia três números e os imprima em ordem crescente. 4. Escreva um algoritmo que leia 10 números e imprima o maior deles. 5. Escreva um algoritmo que leia uma certa quantidade de números e imprima o maior

deles e quantas vezes o maior número foi lido. A quantidade de números a serem lidos deve ser fornecida pelo usuário. Assuma que o usuário sempre fornecerá um número positivo.

6. Modifique o problema anterior de modo que caso o usuário digite um número negativo o programa peça novamente a quantidade de números e repita este procedimento até que o usuário forneça um número positivo.

7. Modifique o problema anterior para permitir que o usuário possa em caso de erro ter três tentivas. Na terceira tentativa o programa deve terminar avisando ao usuário a razão da interrupção.

8. Escreva um algoritmo que leia um número inteiro entre 100 e 999 e imprima na saída cada um dos algarismos que compõem o número.

9. Uma empresa paga R10.00 por hora normal trabalhada e R$ 15.00 por hora extra. Escreva um programa que leia o total de horas normais e o total de horas extras trabalhadas por um empregado em um ano e calcule o salário anual deste trabalhador.

10. Assuma que o trabalhador do exercício anterior deve pagar 10% de imposto se o seu salário anual for menor ou igual a R$ 12000.00. Caso o salário seja maior que este valor o imposto devido é igual a 10% sobre R$ 12000.00 mais 25% sobre o que passar de R$ 12000.00. Escreva um programa que calcule o imposto devido pelo trabalhador.