Construção de Algoritmos Construção de Algoritmos AULA 05 Aquiles Burlamaqui UERN Professor: Aquiles Burlamaqui Construção de Algoritmos …previously Revisão geral Algoritmos Evolução das Linguagens Interpretação vs Compilação Estrutura de condicionais If switch Estruturas de repetição For While Do...while 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 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 Getch no Linux #include <stdio.h> #include <termios.h> #include <unistd.h> int getch() { struct termios oldt, newt; int ch; tcgetattr( STDIN_FILENO, &oldt ); newt = oldt; newt.c_lflag &= ~( ICANON | ECHO ); tcsetattr( STDIN_FILENO, TCSANOW, &newt ); ch=getchar(); tcsetattr( STDIN_FILENO, TCSANOW, &oldt ); return ch; } Professor: Aquiles Burlamaqui Construção de Algoritmos Exercícios T4(Revisão) 1)Construa um algoritmo que, tendo como dados de entrada dois pontos quaisquer no plano, P(x1,y1) e P(x2,y2), escreva a distância entre eles. A fórmula que efetua tal cálculo é: d=sqrt((x2-x1)²+(y2-y1)²); 2)Escreva um algoritmo que leia três números inteiros e positivos (A, B, C) e calcule a seguinte expressão: d=(r+s)/2, onde r=(a+b)² e s=(b+c)² 3)Faça um algoritmo que leia a idade de uma pessoa expressa em anos, meses e dias e mostre-a expressa apenas em dias. 4)Faça um algoritmo que leia o tempo de duração de um evento em uma fábrica expressa em segundos e mostre-o expresso em horas, minutos e segundos. 5)O custo ao consumidor de um carro novo é a soma do custo de fábrica com a percentagem do distribuidor e dos impostos (aplicados ao custo de fábrica). Supondo que a percentagem do distribuidor seja de 28% e os impostos de 45%, escrever um algoritmo que leia o custo de fábrica de um carro e escreva o custo ao consumidor. 6)Faça um programa que implemente um menu com 10 opções de piadas. Quando o usuário escolher uma delas a piada deverá ser exibida. 7)Faça um programa que verifique e mostre os números entre 1000 e 2000 (inclusive) que, quando divididos por 11, produzam resto igual a 5. 8)Faça um programa que leia um valor n, inteiro e positivo, calcule e mostre a seguinte soma: S=1 + 1/2 + 1/3 + 1/4 + ... + 1/n. 9)Faça um programa que mostre a tabuada dos números de 1 a 10. 10)Faça um programa que receba a idade de 10 pessoas e que calcule e mostre a quantidade de pessoas com idade maior ou igual a 18 anos. Professor: Aquiles Burlamaqui Construção de Algoritmos Exercícios T5: Implementar um Jogo da Velha T6: Problema da Tartaruga; Problema das 8 rainhas; Uma tartaruga tem um a caneta e ela anda pela tela desenhando, como um rasto por onde ela passe. Mas caso o usuário queira, ele pode pedir para a tartaruga andar sem deixar um rasto. O problema das oito rainhas consiste em posicionar 8 rainhas em um tabuleiro de xadrez de modo que nenhuma das rainhas ataque a outra. Lembrando, uma rainha no jogo de xadrez se move na horizontal, vertical e ao longo das diagonais. Uma possível solução para esse problema está exemplificada na figura abaixo. Quais e quantas são as configurações possíveis ? Construir uma agenda telefonica Professor: Aquiles Burlamaqui Construção de Algoritmos Problema das 8 rainhas Professor: Aquiles Burlamaqui