Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
29/03/2011 1 Algoritmos Aula 06 Profª Helyane B. Borges Definições de Linguagem de Programação É um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. É uma ferramenta importante para os programadores e engenheiros de software. Linguagem C Ritchie e Thompson – 1972 Sistema Operacional UNIX Aplicações Características ◦ Nível Médio ◦ Linguagem estruturada ◦ Portabilidade ◦ Programas compilados ◦ Código eficiente ◦ Uso de bibliotecas Sintaxe algoritmo <nome_do_algoritmo> <subalgoritmos> início <declaração_de_variáveis> <corpo_do_algoritmo> fim. fim algoritmo. //bibliotecas <subalgoritmos> main() { <declaração_de_variáveis> <corpo_do_algoritmo> } Programa principal Inicio do bloco Final do bloco Tipos de Dados Algoritmo Inteiro Caracter Lógico Real C int char float double void char NOME[20]; “ANA” char LETRA; „A‟ Variáveis Sintaxe em algoritmo: <tipo_da_variável> : <nome_da_variável>; Sintaxe em C: <tipo_da_variável> <nome_da_variável>; 29/03/2011 2 Constantes Sintaxe: const <nome_da_constante> = <valor>; # define <nome_da_constante> = <valor>; Constantes de Barra Invertida - C Código Significado \b Retrocesso (backspace) \f Alimentação de Formulário (form feed) \t Tabulação Horizontal (tab) \n Nova Linha \” Aspas \’ Apostrofo \0 Nulo \\ Barra Invertida \a Sinal Sonoro (Beep) \N Constante Octal (N é o valor da constante) \xN Constante Hexadecimal (N é o valor da constante) Operador de atribuição = Algoritmo: x 2000; C: x = 2000; A ação é executada da direita para a esquerda. Algoritmo C Ação + + Soma - - Subtração ou troca de sinal * * Multiplicação / / Divisão mod % Resto da divisão inteira ++ ++ Incremento -- -- Decremento Operadores Aritméticos Operadores Relacionais Algoritmo C Relação > > Maior que >= >= Maior que ou igual a < < Menor que <= <= Menor que ou igual a = == Igual a <> != Diferente de Operadores Lógicos Algoritmo C Função e && conjunção ou || disjunção não ! negação 29/03/2011 3 Operadores de Incremento e Decremento - C Incremento: ++ ◦ Soma 1 ao seu operando ◦ Exemplo : X++; // Mesmo que : x = x+1; Decremento: -- ◦ Subtrai 1 ao seu operando ◦ Exemplo : X--; // Mesmo que : x = x-1; Prefixo ou sufixo Prefixo : ++x Sufixo : x++ ◦ Tem diferença quando usado em expressão: X = 10; y = ++x; /* primeiro acrescenta 1 em x e depois atribui a soma a y */ ◦ Porém : x = 10; y = x++; /* primeiro atribui x a y e depois acrescenta 1 em x */ Operadores aritméticos de atribuição Combinam operações aritméticas com atribuição. O operando da esquerda é sempre o nome de uma variável e o da direita, uma expressão qualquer. A operação consiste em atribuir um novo valor à variável que dependerá do operador e da expressão à direita. Regra geral: se x é uma variável, exp uma expressão e op um operador aritmético, então: x op= exp equivale a x = x op (exp) Exemplos: i += 2; equivale a i = i+2; x *= y+1; equivale a x = x * (y+1); p %= 5; equivale a p = p % 5; Operadores aritméticos de atribuição (cont.) Saída de Dados Algoritmo ◦ escreva(“teste”); ◦ escreva(“Meu nome e”,NOME”,e minha idade e”, IDADE); C ◦ printf(“teste”); ◦ printf(“Meu nome e %s e minha idade e %d”, NOME, IDADE); Entrada de Dados Algoritmo ◦ leia(<VARIAVEL>); ◦ Exemplo: leia(NUMERO); C ◦ scanf (“<CODIGO>”,&<VARIAVEL>); ◦ Exemplo: scanf(“%d”,&NUMERO); 29/03/2011 4 Códigos de Formatação da Função %c Caracter %d Inteiro %f Ponto flutuante – real %e Notação científica %s Cadeia de caracteres %x hexadecimais Caracteres de controle \n – nova linha \r – enter \t – tabulação (tab) \b – retrocesso \ “ – aspas \\ - barra Bibliotecas As funções, como por exemplo as funções printf e scanf pertencem a uma Biblioteca chamada stdio.h que precisa ser incluída ao programa. Outras bibliotecas: ◦ conio.h ◦ math.h ◦ string.h Sintaxe: #include<nome_da_biblioteca> OBS: Devem ser inseridas no inicio do código. Palavras Reservadas em C auto, break, case, char, const, continue, default, do, double, else, enum, extern, float, for, goto, if, int, long, register, return, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while Obs.: C é case sensitive #include <stdio.h> #include <conio.h> main( ) { printf(“Meu primeiro programa”); getch(); } Exemplo 1 Função que espera uma tecla ser pressionada. Encontra-se na biblioteca conio.h. Exemplo 2 Escrevendo uma palavra em cada linha #include <stdio.h> #include <conio.h> main( ) { printf(“Meu\nprimeiro\n\tprograma”); getch(); } 29/03/2011 5 Exemplo 3 Escrevendo 3 frases com texto e valores #include<stdio.h> #include<conio.h> main () { printf (“O numero valido e :%d”,2); printf(“O valor em real e: %f”,1.5); printf(“A letra correta e : %c”,‟a‟); getch(); } Exemplo 4 Tamanho para a impressão de campo main () { printf(“Os alunos são %2d”, 350); printf(“Os alunos são %4d”, 350); printf(“Os alunos são %5d”, 350); getch(); } Saída Os alunos são 350 Os alunos são 350 Os alunos são 350 Exemplo 5 Formatando casas decimais main () { printf(“O preço e :%.2f”, 1234.5681); printf(“O preço e :%.3f”, 1234.5681); getch(); } Saída O preço e : 1234.56; O preço e : 1234.568; Exemplo 6 Formatação dos Campos Os tamanhos de campos podem ser usados para alinhamento a esquerda ou a direita. Ex: main() { printf(“%.2f %.2f %.2f\n”, 8.0, 15.3, 584.13); printf(“%.2f %.2f %.2f\n”, 834.0, 1500.55, 4890.21); } SAÍDA 8.00 15.30 584.13 834.00 1500.55 4890.21 Exemplo 7 Alinhamento a direita main() { printf(“%10.2f %10.2f %10.2f\n”, 8.0, 15.3, 584.13); printf(“%10.2f %10.2f %10.2f\n”, 834.0, 1500.55, 4890.21); } SAÍDA 8.00 15.30 584.13 834.00 1500.55 4890.21 Exemplo 8 Alinhamento a esquerda O sinal de “-” precedendo a especificação do tamanho do campo justifica os campos à esquerda, como mostra o próximo programa: main() { printf(“%-10.2f %-10.2f %-10.2f\n”, 8.0, 15.3, 584.13); printf(“%-10.2f %-10.2f %-10.2f\n”, 834.0, 1500.55, 4890.21); } SAÍDA 8.00 15.30 584.13 834.00 1500.55 4890.21 29/03/2011 6 Exemplo 9 Mostrando várias informações em um comando #include<stdio.h> #include<conio.h> main () { printf(“%s esta a %d milhoes de milhas do Sol”, ”Venus” , 67); getch(); } Saída Venus esta a 67 milhoes de milhas do Sol Exemplo 10 #include<stdio.h> #include<conio.h> main () { printf(“A letra %c”, „j‟); printf(“pronuncia-se %s.”,”jota”); getch(); } Saída A letra j pronuncia-se jota O caractere aspas (“) indica ao compilador uma cadeia de caracteres e o apóstrofo („) indica um caracter Procedimentos/Funções Sintaxe: Algoritmo C algoritmo <nome_do_algoritmo> procedimento<nome>(<parâmetro>) início <declaração_de_variáveis>; <comandos>; fim procedimento; início <declaração_de_variáveis> <corpo_do_algoritmo> fim. fim algoritmo. //bibliotecas void <nome>(<parâmetro>) { <declaração_de_variáveis>; <comandos>; } main() { <declaração_de_variáveis> <corpo_do_algoritmo> } Em C não tem-se o termo procedimento, tudo é funções. Neste exemplo é uma função que não recebe parâmetros e retorna vazio (não retorna um valor) por isso é do tipo void. Procedimentos/Funções (cont.) Exemplo: Algoritmo C algoritmo imprime_nome procedimento imprimir(caracter: NOME1) início escreva(“Meu nome e”, NOME1); fim procedimento; início caracter: NOME; escreva(“Digite seu nome”); leia(NOME); imprimir(NOME); fim; fim algoritmo. #include <conio.h> #include <stdio.h> void imprimir(char NOME1[40]) { printf(“Meu nome e %s”, NOME1); } main() { char NOME[40]; printf(“Digite seu nome”); scanf(“%s”, &NOME); imprimir(NOME); getch(); } Neste exemplo (em C) é uma função que recebe parâmetros e retorna vazio (não retorna um valor). Estrutura de Decisão Estrutura de Decisão Simples ◦ se ... então ◦ if Estrutura de Decisão Composta ◦ se ... então ... Senão ◦ if....else Estrutura de Decisão Múltipla Escolha ◦ escolha ... caso ... caso-contrario ◦ switch ... case Estrutura de Decisão Simples Sintaxe: Algoritmo C se (<condição>) então <comando_único>; fim se; ou se (<condição>) então início <comando_composto>; fim; fim se; if (<condição>) <comando_único>; ou if (<condição>) { <comando_composto>; } 29/03/2011 7 Estrutura de Decisão Simples (cont.) algoritmo decisão_simples inicio real: MEDIA; escreva(“Digite a média”); leia (MEDIA); se (MEDIA>=7.0) então escreva(“Aprovado”); fim-se; fim; fim algoritmo. #include <conio.h> #include <stdio.h> main() { float MEDIA; printf(“Digite a média”); scanf(“%f”,&MEDIA); if (MEDIA>=7.0) printf(“Aprovado”); getch(); } Exemplo: Algoritmo C Estrutura de Decisão Composta se (<condição>) então <comando_único_1> senão <comando_único_2>; fim se; ou se (<condição>) então início <comando_composto_1>; fim; senão início <comando_composto_2>; fim; fim se; if (<condição>) <comando_único>; else <comando_único>; ou if (<condição>) { <comando_composto>; } else { < comando_composto >; } Sintaxe: Algoritmo C Estrutura de Decisão Composta (cont.) algoritmo decisão_composta inicio real: MEDIA; escreva(“Digite a média”); leia (MEDIA); se (MEDIA>=7.0) então escreva(“Aprovado”); senão escreva(“Reprovado”); fim-se; fim; fim algoritmo. #include <conio.h> #include <stdio.h> main() { float MEDIA; printf(“Digite a média”); scanf(“%f”,&MEDIA); if (MEDIA>=7.0) printf(“Aprovado”); else printf(“Reprovado”); getch(); } Exemplo: Algoritmo C Estrutura de Decisão de Múltipla Escolha escolha (<variável>) início caso <condição_1> : <comando_composto_1>; caso <condição_2> : <comando_composto_2>; ... caso <condição_n> : <comando_composto_n>; caso contrário: <comando_composto_s>; fim escolha; switch(<variável>) { case <condição_1> : <comando_composto_1>; case <condição_2> : <comando_composto_2>; ... case <condição_n> : <comando_composto_n>; default: <comando_composto_s>; } Sintaxe: Algoritmo C Estrutura de Decisão de Múltipla Escolha (cont.) algoritmo decisão_mulltipla_escolha inicio inteiro: OPCAO; escreva(“Escolha sua opção: 1-Técnico ou 2-Gerente”); leia (OPCAO); escolha (OPCAO) inicio caso 1: escreva (“Você terá aumento de 10%”); caso 2: escreva (“Você terá aumento de 5%”); caso contrario: escreva (“Opção inválida”); fim-escolha; fim; fim algoritmo. #include <conio.h> #include <stdio.h> main() { int OPCAO; printf(“Escolha sua opção: 1-Técnico ou 2-Gerente”); scanf(“%d”,&OPCAO); switch (OPCAO) { case 1: printf (“Você terá aumento de 10%”); break; case 2: printf (“Você terá aumento de 5%”); break; default: printf (“Opção inválida”); } getch(); } Exemplo: Algoritmo C