Baixe o app para aproveitar ainda mais
Prévia do material em texto
CCF 110 ALGORITMO E ESTRUTURA ALGORITMO E ESTRUTURA DE DADOS IDE DADOS I Universidade Federal de Itajubá Prof. Roberto Affonso da Costa Junior AULA 01 – 1/2AULA 01 – 1/2 – Introdução ao curso – Sistema de programação Prof. Roberto Affonso da Costa Junior rcosta62br@gmail.com http://www.rcosta62br.unifei.edu.br (35) 3629.1351 Instituto de Ciências Exatas Departamento de Matemática e Computação O cursoO curso • Tipo de aulas – Expositivas no quadro – Apresentação de transparências – Apresentação de slides AvaliaçãoAvaliação 2 – Provas de 0 a 100 pontos (P1 e P2) 1 – Prova Substitutiva de 0 a 100 pontos (NS) 2 – Trabalhos de 0 a 100 pontos (T1 e T2) O Trabalho T1 será composto da seguinte forma: - Serão aplicados 7 trabalhos até a prova P1, a nota do trabalho T1 é a média das 5 notas maiores dos 7 trabalho. O Trabalho T2 será composto da seguinte forma: - Serão aplicados 7 trabalhos até a prova P2, a nota do trabalho T2 é a média das 5 notas maiores dos 7 trabalho. AvaliaçãoAvaliação A perda de uma prova só será substituída em casos excepcionais julgado pelo professor ou com autorização da PRG. Os trabalhos deverão ser entregues no dia. Qualquer trabalho fora do prazo NÃO SERÁ ACEITO. Como visto, no slide anterior, o ALUNO pode perder 2 trabalho por prova. AvaliaçãoAvaliação A composição das Notas 1 e Notas 2 (N1 e N2) será feita da seguinte forma: Se P1 (ou P2) >= 85 Então N1 (ou N2) = P1 (ou P2) * 0,85 + T1 (ou T2) * 0,15 Senão Se P1 (ou P2) >= 70 e P1 (ou P2) < 85 Então N1 (ou N2) = P1 (ou P2) * 0,80 + T1 (ou T2) * 0,20 Senão Se P1 (ou P2) >= 50 e P1 (ou P2) < 70 Então N1 (ou N2) = P1 (ou P2) * 0,75 + T1 (ou T2) * 0,25 Senão N1 (ou N2) = P1 (ou P2) * 0,70 + T1 (ou T2) * 0,30 AvaliaçãoAvaliação A nota final será composta de: Nota Final (NF) = (N1 + N2) / 2 Se NF >= 60 Então “APROVADO” Senão “REPROVADO” A prova Substitutiva, vai substituir a nota da prova P1 ou P2, a menor delas. Datas ImportantesDatas Importantes • Primeira prova bimestral • Segunda prova bimestral • Prova Substitutiva – As provas serão nas horas da aula, com duração de 100 minutos. Simulação da ProvaSimulação da Prova Pedro tirou as notas: P1 = 85, T1 = 10, P2 = 90, T2 = 20 Sua notas foram: N1 = 74 e N2 = 80 – NF = 77 Marciano tirou as notas: P1 = 70, T1 = 30, P2 = 75, T2 = 60 Sua notas foram: N1 = 62 e N2 = 72 – NF = 67 Manoel tirou as notas: P1 = 55, T1 = 100, P2 = 50, T2 = 100 Sua notas foram: N1 = 69 e N2 = 65 – NF = 67 REPAREMREPAREM COMO O TRABALHO COMO O TRABALHO AJUDA!!!AJUDA!!! Sugestão de BibliografiaSugestão de Bibliografia Roberto Affonso da Costa Junior Notas de Aulas Dirceu Douglas Salvetti , Lisbete Madsen Barbosa Algoritmos Markron Books – 1998 Brian W. Kernighan, Dennis M. Ritchie C – A Linguagem de Programação Editora Campus – 2002 Ascencio, A. F. G. e Campos, E. A. V. Fundamentos de Programação de Computadores – Algoritmos, Pascal e C/C++ Editora Prentice Hall, 2003 Sugestão de JogosSugestão de Jogos O que vou ver nesse curso? 1. Que TAL FAZER ELE SER DIVERTIDO. 2. Que TAL FAZER ELE SER ATRAENTE. 3. Que TAL ABRIR MINHA CABEÇA PARA A UNIVERSIDADE. ISSO QUE VAI SER O CURSO. ENTÃO VAMOS JOGAR.ENTÃO VAMOS JOGAR. http://www.pontuschka.com/portal/index.php? option=com_content&view=article&id=13 Sugestões para seu bom Sugestões para seu bom desempenho no cursodesempenho no curso • Não falte às aulas; • Não tenha vergonha de fazer perguntas para tirar suas dúvidas durante as aulas; • Não deixe para estudar às vésperas das provas; • Procure seu professor em sua sala, sempre que uma dúvida não tiver sido bem esclarecida; • O aluno não será atendido pelo professor às vésperas das provas; • Sempre que possível, utilize o computador para tirar suas dúvidas; • Procure também os alunos monitores de ensino, para ser ajudado nas tarefas escolares ( horários disponíveis nos quadros de avisos ); • Jamais tente colar ou passar cola para outros durante as atividades escolares; as penas institucionais são muito rígidas a este respeito. O aluno, se pego nestas situações, é punido com a perda da disciplina. • Qualquer dúvida com relação à disciplina, procure o professor da mesma ou leia diariamente os quadros de avisos oficiais; não confie em boatos ou “fiquei sabendo”, ou “disseram” etc. A importância da disciplina no A importância da disciplina no currículo da engenhariacurrículo da engenharia Preparar os alunos do curso, para programação de computadores digitais através de uma linguagem de alto nível. Dessa forma, ao finalizarem este curso, os alunos estarão habilitados a conceber, definir, projetar, implementar e validar programas envolvendo as atividades naturais de seu aprendizado em outras disciplinas, ou outras atividades, tais como por exemplo, pesquisas e iniciação cientifica. • Além disso, o engenheiro é usuário obrigatório desta ferramenta, principalmente na área de engenharia, onde inúmeras aplicações utilizam o computador como instrumento para resolver as atividades relativas à área. • Trabalhos complexos e frequentes, atualmente só podem ser realizados com a utilização de computadores. • Daí a grande importância do aprendizado desta disciplina no seu currículo. IntroduçãoIntrodução • Processamento de dados – O que é ? – O que significa a palavra ‘dados’ ? • Lógica – O que é ? – Lógica humana ? – Lógica matemática ? O ComputadorO Computador • O que é ? • Depende de alguém para comandá-lo ? • Vantagens: – Velocidade – Memória • Guardar a informação • Buscar a informação Componentes do ComputadorComponentes do Computador • Unidade central de processamento ( CPU ) – Unidade lógica aritmética – Unidade de armazenamento – Unidade de controle • Periféricos – Unidade de entrada – Unidade de saída – Memória auxiliar Definições básicasDefinições básicas • HARDWARE – Parte física do computador • SOFTWARE – Parte lógica ( programas, instruções, etc ) AAplicaçõesplicações • Todas as áreas de nossa vida: – Alto nível – Diversão – Bancária – Medicina – Industrial – Comercial – Doméstico – Etc. História do ComputadorHistória do Computador ● No dicionário do AURÉLIO você encontra a palavra COMPUTADOR. ● adj. e s.m. Que ou aquele que computa. Máquina composta de um número variável de unidades especializadas, comandadas por um mesmo programa gravado, que, sem intervenção humana direta, permite efetuar complexas operações aritméticas e lógicas com fins estatísticos, administrativos, contabilísticos etc. História do ComputadorHistória do Computador História do ComputadorHistória do Computador ProgramaçãoProgramação • O que é ? conjunto de instruções com o objetivo de ordenar ao computador a execução de tarefas bem defini-das • Exemplo Numérico Calcular a média aritmética de 3 números inteiros dados SoluçãoSolução 1.Obter o primeiro número 2.Obter o segundo número 3.Obter o terceiro número 4.Somar os números obtidos 5.Dividir por 3, a soma obtida no item anterior 6.Mostrar o resultado obtido no item anterior ComentáriosComentários • Quem obtém os números? • Onde eles são guardados, no computador, depois de obtidos? • Onde a soma dos números é armazenada? • E da mesma forma, a divisão da soma dos números? • Como é mostrada a informação desejada? Técnicas de ProgramaçãoTécnicas de Programação • Uma metodologia de programação é constituída dos seguintes passos: – Análise do problema; – Projeto do programa; – Implementação do programa; – Verificação do programa Análise do problemaAnálise do problema • Compreender corretamentee sem ambiguidade o problema a ser resolvido; • Especificação correta das entradas e saídas; Projeto do programaProjeto do programa • Algoritmos – Uma sequência finita de instruções básicas cuja execução, em tempo finito, resolve um problema computacional, qualquer que seja sua instância (os valores fornecidos ao programa) – É a forma de transformar um problema qualquer num programa computacional • Estrutura de dados – Durante a execução do programa as informações ( dados ) são armazenadas na memória do computador. – As localizações de memória ( endereços ) em que estes dados estão armazenados e a forma como estes dados são recuperados ( numa nova utilização ) dependem de como eles são arranjados. Estes arranjos, são denominados estruturas de dados. ImplementaçãoImplementação • Corresponde à codificação do algoritmo numa linguagem de programação • Linguagem de programação – Meio de comunicação entre o usuário e a máquina VerificaçãoVerificação • Também chamado de testes ou depuração; • Visa verificar ser o programa implementado está correto, para qualquer entrada proposta a ele; LinguagensLinguagens • Humana – Idiomas – Escrita • Computacional – De alto nível – De baixo nível Linguagem de baixo nívelLinguagem de baixo nível • É a linguagem de comunicação entendida apenas pelo computador; • É denominada linguagem binária pois é constituída apenas dos dígitos zero e um; • Exemplo de uma instrução binária: – 0101 0011 1111 0001 • Esta linguagem é também conhecida como linguagem Assembler Linguagem de alto nívelLinguagem de alto nível • É a linguagem de comunicação entre o usuário hu-mano e o computador; • Existem várias linguagens disponíveis hoje em dia, cada uma com uma característica específica: – Fortran – Cobol – Lisp – Ada – Pascal – C – C++ – Java – etc CompilaçãoCompilação • É a tradução de um programa escrito em linguagem de alto nível para sua correspondente linguagem em baixo nível • Compilador – Software responsável pela compilação de um programa – Para cada linguagem de programação em alto nível, existe um compilador correspondente. Sistema de programaçãoSistema de programação • É o sistema computacional responsável pela tarefa completa de programação; • Geralmente esta tarefa envolve os passos: – Edição do programa em linguagem de alto nível; – Armazenamento em arquivos, deste programa editado; – Compilação do programa – Se houver erros na escrita do programa compilado, este deve ser novamente reeditado; – Execução do programa; – Verificação do programa pelo usuário. • Estes sistemas de programação podem ser integrados ou não. – Quando não integrados, cada tarefa tem um software responsável pela sua realização ; – Quando integrado, todas as tarefas são gerenciadas por um único software chamado ambiente de programação. EditarEditar Corresponde utilizar um software que permite ao usuário escrever (editar) um texto, modificar um texto, salvar um texto na memória da máquina ou recuperar um texto da memória da máquina. Um software conhecido para esta tarefa é o GEDIT ou Bloco de Notas presentes no sistema operacional Windows ou Linux. ArquivosArquivos • É o local da memória da máquina onde as informações são armazenadas em pacotes ou grupos; • Um arquivo pode ter qualquer tipo de informação, no entanto, esta deve ser conhecida e controlada pelo usuário e pelo programa que utiliza este arquivo; • Tipos de arquivos: – Os arquivos podem armazenar os programas de computador; – Os arquivos podem armazenar também os dados dos programas; – Extensões aos nomes dos arquivos são utilizadas para identificar o tipo do arquivo. Exemplos: .c armazena um programa em linguagem C; .for armazena um programa em linguagem Fortran; .dat armazena dados para um programa; .txt armazena textos, que também podem ser dados de um programa; .java armazena um programa em linguagem Java. Valores decimaisValores decimais • Digito decimal – 0 1 2 3 4 5 6 7 8 9 • Utilizado para a representação numérica entendida pelo usuário humano • Operações disponíveis: – Todas aquelas conhecidas na aritmética humana Valores BináriosValores Binários • Assim como os humanos representam as informações numéricas através dos dígitos decimais, a máquina representa todas as suas informações através dos dígitos binários. • Isto se deve ao fato de que a máquina é do estado binário, ou seja, verdadeiro ou falso, aceso ou apagado, etc. • Isto significa que qualquer tipo de informação armazenada, obtida, processada pelo computador é sempre do tipo binário, ou seja, é constituída dos dígitos 0 ( zero ) ou 1 ( hum ). • Por isto é importante o entendimento de como é feita a representação da informação em termos binários. Transformação Binário para Transformação Binário para decimaldecimal 3 2 1 0 1 1 0 1 Os números acima dos valores binários indicam as posições dos mesmos; o valor binário mais a direita tem posição zero, o próximo a esquerda tem posição um, e assim por diante. O valor decimal correspondente é obtido: -Para cada valor binário, toma-se seu correspondente decimal e o multiplica pela base elevada ao valor correspondente de sua posição; -soma-se todos os resultados obtidos no passo anterior • No exemplo, tem-se: 1 x 20 + 0 x 21 + 1 x 22 + 1 x 23 1 + 0 + 4 + 8 (13 )10 Valores HexadecimaisValores Hexadecimais • Digito Hexadecimal – Utilizado na representação dos valores decimais na base 16 – 0 1 2 3 4 5 6 7 8 9 A B C D E F – Correspondem respectivamente a: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 • Exemplo – 4A2F corresponde ao valor decimal 18991 • Representação – ( 4A2F )16 ou 4A2F h Transformação Hexadecimal Transformação Hexadecimal para decimalpara decimal 3 2 1 0 4 A 2 F Os números acima dos valores hexadecimais indicam as posições dos mesmos; o valor hexadecimal mais a direita tem posição zero, o próximo a esquerda tem posição um, e assim por diante. O valor decimal correspondente é obtido: -Para cada valor hexadecimal, toma-se seu correspondente decimal e o multiplica pela base elevada ao valor correspondente de sua posição; -soma-se todos os resultados obtidos no passo anterior • Exemplo: 4A2F F x 160 = 15 x 160 = 15 x 1 = 15 2 x 161 = 2 x 16 = 32 A x 162 = 10 x 16 x 16 = 2560 4 x 163 = 4 x 16 x 16 x 16 = 16384 Total : 15 + 32 + 2560 + 16384 = 1899110 Transformação decimal para Transformação decimal para HexadecimalHexadecimal 1899110 Divide-se sucessivamente o valor inteiro decimal pela base 16 e toma-se os restos obtidos: 18991 / 16 = 1186 com resto 15 1186 / 16 = 74 com resto 2 74 / 16 = 4 com resto 10 4 / 16 = 0 com resto 4 Desta forma, os restos obtidos 15 / 2 / 10 / 4 são colocados em hexadecimal em forma inversa: Ou seja : 4A2F h Transformações quaisquerTransformações quaisquer • É possível fazer-se qualquer tipo de transformação, ou seja, de qualquer base para qualquer base. • Lembre-se que estas representações são realizadas para simplificar o entendimento pelo humano, enquanto a maquina entende e processa apenas o modo binário. • A transformação de uma base para outra é realizada exatamente da mesma forma mostrada no exemplo anterior, modificando-se apenas as bases. • Na base binária, os dígitos constituintes são 0 e 1; • Na base octal, os dígitos constituintes são 0, 1, ..., 7 • Na base hexadecimal, os dígitos constituintes são, 0, 1, ..., 9, A, B, ...., F Decimal-BináriaDecimal-Binária• A transformação de um número decimal em binário é feita usando a divisão do número decimal por 2 e assim sucessivamente até que o quociente seja 0. • Exemplo: 7 2 31 2 11 710 = 1112 Leia o número de baixo para cima. 2 01 Binário-DecimalBinário-Decimal • A transformação de um número binário em decimal é feita usando a soma da multiplicação de cada unidade pela potência de 2 elevado a posição da unidade. A posição da unidade começa com zero. • Exemplo: 1112 = 1 x 22 + 1 x 21 + 1 x 20 = 4 + 2 + 1 = 710 Decimal-OctalDecimal-Octal • A transformação de um número decimal em octal é feita usando a divisão do número decimal por 8 e assim sucessivamente até que o quociente seja 0. • Exemplo: 17 8 21 8 02 1710 = 218 Leia o número de baixo para cima. Octal-DecimalOctal-Decimal • A transformação de um número octal em decimal é feita usando a soma da multiplicação de cada unidade pela potência de 8 elevado a posição da unidade. A posição da unidade começa com zero. • Exemplo: 218 = 2 x 81 + 1 x 80 = 16 + 1 = 1710 Decimal-HexadecimalDecimal-Hexadecimal • A transformação de um número decimal em hexadecimal é feita usando a divisão do número decimal por 16 e assim sucessivamente até que o quociente seja 0. • Exemplo: 17 16 11 16 01 1710 = 1116 Leia o número de baixo para cima. Hexadecimal-DecimalHexadecimal-Decimal • A transformação de um número hexadecimal em decimal é feita usando a soma da multiplicação de cada unidade pela potência de 8 elevado a posição da unidade. A posição da unidade começa com zero. • Exemplo: 1116 = 1 x 161 + 1 x 160 = 16 + 1 = 1710 Binário-HexadecimalBinário-Hexadecimal • A transformação de um número binário em hexadecimal é feita usando a separação do número binário em grupo de 4, ou seja, de 0 a 15 em decimal, ou em binário, de 0000 a 1111. • Exemplo: 1101 01012 = D516 Hexadecimal-BinárioHexadecimal-Binário • A transformação de um número hexadecimal em binário é feita transformando cada unidade em um número binário. • Exemplo: F3A16 = 1111 0011 10102 TreinamentoTreinamento 1) Transforme os valores de decimal para binário. a) 1010 = b) 2510 = c) 3710 = d) 13210 = e) 9310 = TreinamentoTreinamento 2) Transforme os valores de binário para decimal. a) 1012 = b) 10101012 = c) 11010012 = d) 10102 = e) 1010101012 = TreinamentoTreinamento 3) Transforme os valores de decimal para octal. a) 1010 = b) 2510 = c) 3710 = d) 13210 = e) 9310 = TreinamentoTreinamento 4) Transforme os valores de octal para decimal. a) 178 = b) 258 = c) 1328 = d) 468 = e) 1008 = TreinamentoTreinamento 5) Transforme os valores de decimal para hexadecial. a) 1010 = b) 2510 = c) 3710 = d) 13210 = e) 9310 = TreinamentoTreinamento 6) Transforme os valores de hexidecimal para decimal. a) AF16 = b) 2A516 = c) F2D16 = d) 12B16 = e) 97616 = TreinamentoTreinamento 7) Transforme os valores de hexidecimal para decimal. a) BD16 = b) 5A216 = c) 2FD16 = d) 1B216 = e) 679116 = TreinamentoTreinamento 8) Transforme os valores de binário para hexadecimal. a) 1012 = b) 10101012 = c) 11010012 = d) 110102 = e) 1010101012 = TreinamentoTreinamento 9) Resolva as expressões. a) 1012 + 1102 = b) 178 + 238 – 138 = c) A716 + 5F16 – 2116 = d) 11012 + 318 – 2716 = e) AD16 + 778 – 11010010012 = Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29 Slide 30 Slide 31 Slide 32 Slide 33 Slide 34 Slide 35 Slide 36 Slide 37 Slide 38 Slide 39 Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Slide 47 Slide 48 Slide 49 Slide 50 Slide 51 Slide 52 Slide 53 Slide 54 Slide 55 Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61 Slide 62 Slide 63 Slide 64 Slide 65 Slide 66 Slide 67 Slide 68 Slide 69 Slide 70 Slide 71 Slide 72
Compartilhar