–ALGORITMO E LÓGICA DE PROGRAMAÇÃO Aula 10: REVISÃO GERAL Nas aulas anteriores aprendemos os seguintes ítens. Algoritmos 1. Algoritmo não é a solução de um problema ou de uma tarefa mas é um caminho passo a passo para se chegar lá. É bempossível portanto haver mais de um algoritmo para a mesma tarefa. 2. Uma calculadora se alimenta de números, um computador, mais precisamente um programa de computador, de variáveis. 3. Em qualquer linguagem de programação é preciso conhecer os tipos de variáveis suportados e como eles são declarados. Elas são como caixas de encomenda do Correio que são limitadas pelo tamanho, peso, tipo de objeto entre outros detalhes. 4. Antes de digitar um programa normalmente se faz o modelo estrutural. Para isso pode-se usar um fluxograma. As formas de um fluxograma mais usadas são : entrada manual, exibição, processo, decisão, terminal e as setas. 5. Antes de digitar qualquer programa é preciso identificar quais são as variáveis de entrada e quais as de saída. 6. Todas as fórmulas matemáticas precisam ser linearizadas (escrever numa linha só). Nessa tarefa é importante conhecer os detalhes de cada linguagem de programação. Em C as operações de potenciação e radiciação são feitas com as funções pow(,) e sqrt(). 7. Em qualquer linguagem de programação devemos prestar atenção especialmente em dois comandos: o de entrada e o de saída. 8. Em qualquer linguagem de programação sempre há particularidades que precisam ser observadas como o sintaxe dos comandos, o tratamento de letra maiúscula e minúscula, identificação de variáveis, etc. 9. Em qualquer linguagem de programação devemos conhecer as operações de atribuição (=), de comparação (<, >, =, ...) , aritméticas (*,/,%,+,-) , lógicas (e, ou, não) e valores lógicos (V, T). 10. Comentários são recursos amplamente usados pelos bons programadores para documentar as linhas de código explicando o funcionamento de cada pedaço do programa. Comentários de várias linhas, em C, são marcados entre /* e */ . Comentário de uma linha por //. 11. Um dos recursos mais importantes para a verificação de um algoritmo é o TESTE DE MESA. Esta técnica pode ser usada independentemente da linguagem de programação. 12. Caracterísrticas de uma linguagem de programação estruturada são os comandos de repetição (para, enquanto, repita), os quais juntamente com os comandos de testes (se então, caso) formam os comandos de bloco. 13. Ao fazer a digitação de um algoritmo prefira a organização à economia de espaços e linhas de comando. A única exceção é a economia de quantidade de variáveis usadas. Tudo em prol da organização e legibilidade! Linguagem C 1. Todo programa em C deve ter uma única função chamada main(). Esta é a primeira função a ser executada. O programa termina quando é encontrada a chave que fecha o corpo desta função. 2. Todos os comandos em C devem ser finalizado por um ponto e vírgula (;). 3. A função getch() pode ser usada para dar uma pausa na tela antes que ela feche. Na verdade essa função serve para perceber alguma tecla sendo pressionada. Funções alternativas são: getche(), getchar() e system(“pause”). 4. Antes de usar uma varável ela deve ser declarada e a declaração de uma variável em C é feita atribuindo primeiro o tipo de variável (char, int, float, double, void) seguido de um nome válido que comece com uma letra ou sublinhado e seguido de outros caracteres entre letras, dígitos e sublinhado. Letras Maiúsculas e minúsculas são tratadas diferentemente. 5. O tipo de uma variável define o tamanho da memória que será reservada (em bytes) e a forma como um valor será armazenado. Os modificadores de tipo são usados para alterar o tamanho de um tipo de variável ou para alterar a abrangência dos números representados. Eles são short, long e unsigned. 6. A função printf() é usada para impressão na tela seja texto ou o conteúdo de uma variável. Ela contém um par de aspas duplas entre os quais vc põe toda a expressão que quer mostrar na tela. Quando se quer mostar o conteúdo de uma variável vc deve por ali o código de formatação (% seguido de uma letra: d ou i para inteiro, c para caractere da tabela ASCII e f para números reais). O nome da variável deve ser colocada fora das aspas duplas e precedido por vírgula. Se quiser mostrar o conteúdo de duas variáveis ou mais, põe os códigos de formatação corrrespondentes entre as duas aspas e os nomes das variáveis fora, sempre precedido de vírgula e na mesma sequência. Vc ainda pode por códigos especiais na expressão entre as duas aspas duplas tais como quebra de linha (\n), de tabulação (\n), alarme (\a) etc. conforme a tabela de códigos especiais. 7. A função scanf() é usada para receber informações passadas pelo teclado. Ela deve conter um único par de aspas duplas entre as quais vc deve informar toda a expressão que espera receber pelo teclado. Por isso não é bom escrever muito aqui, uma vez que se vc falhar, esquecer ou errar, a leitura é imediatamente interrompida. Ponha apenas os códigos de formatação (%i, %f, %c, ...) e depois, o nome de cada variável que vai receber a informação precedido de & (operador endereço) e uma vírgula. 8. Os comandos que começam com # são instruções dirigidos ao compilador e chamados de diretivas. O mais usado é #include que serve para carregar as bibliotecas de funções e constantes que serão usadas no programa. 9. Os números em C podem ser escritos em bases decimal, hexadecimal e octal. 10. O sinal de igual (=) é um operador de atribuição. Dois sinais (==) de igual é uma relação de igualdade. Os outros sinais são != para diferente, <= para menor ou igual, >= para maior ou igual. Os operadores lógicos são && para E, || para OU e ! para NÃO. 11. Os operadores aritméticos são em ordem decrescente de precedência: multiplicação (*), divisão (/), módulo (%), soma (+) e substração (-). O oparador % calcula o resto da divisão de um inteiro por outro. Ferramentas Tecnológicas 1. Dev C++ é um ambiente integrado de programação (IDE) para as linguagens de C e C++. Em nosso caso todos os programas deverão ser salvos com a extensão .c (lembrando que o default é .cpp). Isso possibilita rodar programas sem carregar todas as bibliotecas necessárias antes. 2. O compilador do Dev C++, como todos os compiladores, produz um executável a partir de um arquivo fonte preservando o mesmo nome do arquivo-fonte. 3. O Microsoft Visio é uma ferramenta de modelagem que será útil nesta disciplina para a construção do fluxograma. 4. VisuAlg é um mini-ambiente integrado de programação para a linguagem pseudo-código em português estruturado sem acentuação nos seus comandos. As principais características dessa linguagem são: ao invés de ponto e vírgula todos os comandos são finalizados por quebra de linha (ou seja <enter>), o símbolo de atribuição é uma seta (<–), os comandos de bloco são finalizados por fimse, fimrepita, fimenquanto, enfim fim-alguma-coisa. O pseudo-código pode ser traduzido facilmente para a linguagem pascal. Aliás o pseudo-código do VisuAlg é muito próximo do Pascal. 5. No VisuAlg fazer a execução de um programa passo-a-passo é facilitada pela presença de uma janela de visualização de variáveis junto à janela terminal e à janela de edição. Isso facilita a simulação do teste-de-mesa. Entretanto é importante frisar que é sempre possível fazer um teste de mesa em qualquer fase do projeto, mesmo em fase de modelagem do software (fluxograma) e ainda sem computador. EXERCÍCIOS 1. Faça o teste de mesa sem computador para o seguinte programa escrito em duas linguagens tomando como valor incial 5, 13 e depois 24. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 algoritmo "calcula o quê mesmo ?" var i, n, m : inteiro inicio escreval("Digite um inteiro: ") leia(n) para i de 1 ate n passo 1 faca se i%2=0 entao m <- m+i senao m <- m+n fimse fimpara escreva("Valores finais i,n,m : ",i,n,m) fimalgoritmo 1 2 3 4 5 6 7 8 9 10 11 12 13 main() { int i,n,m=0; printf("Inteiro :"); scanf("%i",&n); for (i=1; i<=n; i=i+1) { if (i%2==0) m=m+i; else m=m+n; } printf("valores finais i,n,m: %i, %i, %i",i,n,m); getch(); }