Construção de Algoritmos Construção de Algoritmos AULA 07 Aquiles Burlamaqui UERN Professor: Aquiles Burlamaqui Construção de Algoritmos …previously Estrutura Função Prova Correção 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 Funções recursivas Biblioteca de funções Unidade III Algoritmos de Busca Ponteiros Conceitos Operador endereço e operador de acesso indireto Passagem de parâmetros por referência Alocação dinâmica de memória Arquivo Professor: Aquiles Burlamaqui Construção de Algoritmos Estrutura de dados Heterogêneas Estrutura Uma estrutura (struct) ou registro em C é uma coleção de um ou mais valores, agrupados sob um único nome. Estruturas constituem um recurso importante para organizar os dados utilizados por um programa graças à possibilidade de tratar um grupo de valores como uma única variável. Exemplos: Professor: Aquiles Burlamaqui Construção de Algoritmos Estrutura struct ponto { int x; int y; }; struct funcionario { int registro; char nome[30]; char depto[5]; float salario; }; Professor: Aquiles Burlamaqui Construção de Algoritmos Estrutura Declarando variáveis do tipo estrutura struct ponto p1, p2, p3; struct funcionario Joao; Professor: Aquiles Burlamaqui Construção de Algoritmos Estrutura Atribuindo valores p1.x p1.y p2.x p2.y = = = = 10; 20; p1.x + 5; p2.y + 5; Professor: Aquiles Burlamaqui Construção de Algoritmos Estrutura Atribuindo outra Estrutura funcionario f = Joao; p3 = p2; Professor: Aquiles Burlamaqui Construção de Algoritmos Estrutura Inicialização de Estruturas struct ponto origem = {0,0}; struct ponto trapezio[] = { { 5,5}, {5, 10}, {10,5}, {10,13} }; Professor: Aquiles Burlamaqui Construção de Algoritmos Modularização Funções Variáveis Locais Variáveis Globais Passagem de parâmetros por valor Professor: Aquiles Burlamaqui Construção de Algoritmos Funções São módulos ou blocos de código que executam uma determinada tarefa. “Caixas pretas” que recebem informações de entrada e geram informações de saida. Para que usar funções ? depuração de erros reutilização Professor: Aquiles Burlamaqui Construção de Algoritmos Funções Estrutura de uma função tipo nome(tipo1 var1, tipo2 var2, ...) { código1; . . . códigoN; } Professor: Aquiles Burlamaqui Construção de Algoritmos Funções Exemplo: void diminuir(int parcela1, int parcela2) { int total; total = parcela1 - parcela2; printf ("A subtracao vale: %d",total); } Professor: Aquiles Burlamaqui Construção de Algoritmos Funções Exemplo: int main() { int a=10,b=3; ação1; ação2; diminuir(a,b); ação3; } Professor: Aquiles Burlamaqui Construção de Algoritmos Funções Exemplo: int diminuir(int parcela1, int parcela2) { int total; total = parcela1 - parcela2; return total; } main() { int a=10,b=3,total; ação1; ação2; total = diminuir(a,b); printf ("A subtracao vale: %d",total); ação3; } Professor: Aquiles Burlamaqui Construção de Algoritmos Exercícios de fixação 1) Escreva uma função que pegue dois números, ache o resultado da multiplicação entre eles e exiba o resultado na tela. 2) Escreva o mesmo programa, só que agora ele deve passar para uma variável do programa principal, que irá somar o resultado a 3 e dividir por 2. 3) Explique qual a diferença entre funções que retornam ou não valores. 4) Qual utilidade do tipo de uma função? 5) Qual tipo de função devemos utilizar quando não queremos retornar nada? Professor: Aquiles Burlamaqui Construção de Algoritmos Variáveis Locais Váriaveis que somente são visiveis no bloco onde elas foram declaradas. Por exemplo: variáveis declaradas dentro de uma função Professor: Aquiles Burlamaqui Construção de Algoritmos Variáveis Globais Variáveis visíveis em todo o programa. Por todas as funções em todos os blocos. Professor: Aquiles Burlamaqui Construção de Algoritmos Passagem de parâmetros por valor #include <stdio.h> float sqr (float num); void main () { float num,sq; printf ("Entre com um numero: "); scanf ("%f",&num); sq=sqr(num); printf ("\n\nO numero original e: %f\n",num); printf ("O seu quadrado vale: %f\n",sq); } float sqr (float num) { num=num*num; return num; } Professor: Aquiles Burlamaqui Construção de Algoritmos Exercício T7: Construir um Teclado Virtual Modo Texto. O teclado deve permitir o cadastro de três tipos de usuários. (geral, administração, gerencia) Para cada tipo de usuário um teclado deve ser exibido: geral: Somente Numeros Administração: Somente Letras Gerencia: Letras e Numeros SE FOR SOMENTE DIGITOS (TOTALIZANDO 10 DIGITOS) SE FOR CARACTERES (TOTALIZANDO 26 CARACTERES) 5 BOTOES COM 2 NUMEROS POR BOTAO 7 BOTOES : 6 BOTOES COM 4 CARACTERES E 1 BOTAO COM 2 CARACTERES, TOTALIZANDO OS 7 BOTOES SE FOR DIGITOS E CARACTERES (TOTALIZANDO 36 DIGITOS + CARACTERES) 6 BOTOES COM 6 DIGITOS E CARACTERES DISTRIBUIDOS POR BOTAO Professor: Aquiles Burlamaqui