Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação Versão: 11032014_01 Revisão algoritmos Definição Um algoritmo é um procedimento computacional bem definido que recebe algum(ns) valor(es) como entrada (input) e produz algum(ns) valor(es) como saída (output). Portanto, um algoritmo é uma seqüência de passos computacionais que transformam uma dada entrada na saída desejada. Analogia: Receita culinária Definição Um algoritmo é correto, quando para cada caso de entrada, o programa pára com a saída correta. Um algoritmo incorreto pode não parar quando um dado caso de entrada é introduzido, ou ele pode parar com uma saída que não é correta. Abordagem Dividir-e-conquistar Divide-se sucessivamente o problema dado em subproblemas cada vez menores até que estes possam ser resolvidos (conquistados) Esta abordagem também é conhecida como abordagem de refinamentos sucessivos Exemplo: algoritmo troca de pneu Linguagem algorítmica Linguagem algorítmica Uma linguagem para descrição de algoritmos em linguagem natural e que usa certas convenções próximas de uma linguagem de programação Pseudocódigo São os algoritmos escritos nesta linguagem Variáveis Representa, através de símbolos, o conteúdo (simbólico) de uma posição (célula) de memória. Assim, quando se diz que uma variável x assume um valor 5, se quer na realidade dizer que existe uma posição de memória, representada simbolicamente por x, que contém o valor 5. Atribuição de valores x y+2 x x+2 x=y+2 x=x+2 Expressões expressões aritméticas - aquelas que utilizam operações aritméticas (por exemplo, soma) e resultam em valores numéricos; expressões relacionais - aquelas que utilizam operadores relacionais de comparação (por exemplo, “>”, “<=“, “>=“) e que resultam num valor verdadeiro ou falso; e expressões lógicas - aquelas que utilizam conectivos lógicos (por exemplo, ou lógico) e resultam num valor verdadeiro ou falso. E, OU, Não E, Não OU Entrada e saída Necessidade de obtenção de dados externos Leia(x1, x2, .., xn) Atribui valor as variáveis scanf(“%d”, &variavel); Mostrar saída gerada pelo algoritmo Mostre(x1, x2, ..., xn) Mostra o valor associado as variáveis printf(“%d”, variavel); Mostre(“Resultado da operação”) Mostra uma cadeia de caracteres Estrutura do algoritmo Endentação Bloco (sequência de instruções) x 1; enquanto (x <10) faça { x = 1; while ( x < 10) { x = x + 1; x x + 1; printf(“%d”, x); escreva(x); escreva("Bye, bye"); } printf(“Bye, bye”); } Em C um bloco é delimitado pelos caracteres { e } Estruturas de controle Estrutura condicional se <condição> então <ação 1> senão <ação 2> Exemplo: leia(x); If ( ......){ se (x < 0) então escreva("O número é negativo") ...... }else{ senão escreva("O número não é negativo") ....... } Estruturas de controle Estrutura de repetição 1 enquanto <condição> faça <ação> Exemplo: leia(x); while ( .... ) { enquanto (x <10) faça x x + 1; } Estruturas de controle Estrutura de repetição 2 faça<ação> até que <condição> Exemplo: leia(x); faça xx+1 até que (x > 10); do { ..... } while ( .... ); Estruturas de controle Estrutura condicional 3 para <valor inicial>; até <valor final> ;<incremento> faça <ação> Exemplo: x 1; for ( .... ; .... ; .... ) { para i 1, até 10, incremento 1 faça x x + 1; .... } Ao contrário das estruturas de repetição 1 e 2, a estrutura de repetição 3 deve ser utilizada quando se sabe de antemão quantas vezes a ação correspondente deverá ser executada. Comentários A boa prática de programação recomenda comentar seus códigos. Facilidades para outros compreenderem Facilidade para você lembrar o que fez Em C comentários são feitos usando /* para iniciar e */ para encerrar um comentário /* Comentario de uma linha */ /* */ Comentário de várias linhas Comentário de várias linhas Comentário de várias linhas Dicas Programar é algo pessoal Cada programa criado por você possui seu toque pessoal Utilize a sua criatividade para resolver os problemas Com o tempo você verá que os problemas se tornam simples de resolver Acostume-se a usar boas práticas de programação O que diferencia um bom programador de um mal são as “gambiarras” Dicas Utilize variáveis com nomes que façam algum sentido X = 5 não quer dizer nada contador = 5 diz muito mais Utilize comentários ao longo do código O compilador é seu melhor amigo, não insulte-o... Dicas Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Dicas Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Dicas Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe... Programe... Programe.. Programe... Programe.. Programe...