Baixe o app para aproveitar ainda mais
Prévia do material em texto
*/28 Algoritmos e Programação Algoritmos e Programação Paulo Cesar Lopes Email: pcalgoritmos2@gmail.com www.sites.google.com/site/pcalgoritmos * */28 Algoritmos e Programação Algoritmos e Programação Apresentações Apresentação da Disciplina - Contexto Ementa e Plano de Curso Considerações sobre a bibliografia Exercícios, Avaliações e Trabalhos Práticos Breve Avaliação e Revisão/Conceitos Básicos Agenda * */28 Algoritmos e Programação Conteúdo da Disciplina Comentários sobre a Disciplina Algoritmos e Programação Série: 1ª Série C.H. Teórica: 40 C.H. Prática: 40 C.H. Outras: C.H. Total: 80 EMENTA Conceitos fundamentais de programação: algoritmos, linguagem, compilador; Linguagem de programação; Estrutura de um programa; Tipos de dados; Operadores; Programação estruturada; Estruturas de condição; Laços de repetição; Vetores e matrizes; Caracteres/Strings e funções de manipulação; Tipos estruturados (registros). Aplicações em linguagem C. Estilos de programação estruturada. * */28 Algoritmos e Programação Conteúdo da Disciplina Comentários sobre a Disciplina Algoritmos e Programação CONTEÚDO PROGRAMÁTICO 1 CONCEITOS INICIAIS E FUNDAMENTAIS DE PROGRAMAÇÃO 1.1 Definição e Noção de algoritmos. 1.2 Formas de representação. 1.3 Tipos de dados, variáveis e constantes. 1.4 Instruções primitivas e operadores. 1.5 Estrutura de um Programa. 2 ESTRUTURAS DE DECISÃO 2.1. Desenvolvimento de Algoritmos: análise e resolução de problemas 2.2 Estrutura condicional simples. 2.3 Estrutura condicional composta. 2.4 Estrutura condicional com múltiplas possibilidades de escolha. 3 ESTRUTURAS DE REPETIÇÃO 3.1 Repetição controlada por variável. 3.2 Repetição condicional com teste no início. 3.3 Repetição condicional com teste no final. * */28 Algoritmos e Programação Conteúdo da Disciplina Comentários sobre a Disciplina Algoritmos e Programação CONTEÚDO PROGRAMÁTICO 4 VETORES E MATRIZES 4.1. Conceitos de vetores 4.2. Declaração de vetores 4.3. Operações de Manipulação de vetores 4.4. Conceito de Matrizes 4.5. Declaração de Matrizes 4.6. Operações sobre Matrizes 5 CADEIAS DE CARACTERES e TIPOS ESTRUTURADOS 5.1 Conceitos iniciais em strings. 5.2 Operações básicas para manipulação de cadeias de caracteres. 5.3 TIPOS ESTRUTURADOS 6 SUBALGORITMOS: FUNÇÕES E PROCEDIMENTOS - MODULARIZAÇÃO 6.1 Conceitos de Modularização e decomposição 6.2 Procedimentos. 6.3 Funções. 6.4 Parâmetros e passagem de parâmetros. 6.5 Variáveis locais e globais. * */28 Algoritmos e Programação Conteúdo da Disciplina Comentários sobre a Disciplina Algoritmos e Programação Possíveis práticas de laboratório: Aulas para confecção de programas em C. * */28 Algoritmos e Programação Plano de Curso Discussão sobre o Plano de Curso Algoritmos e Programação CRONOGRAMA 1 CONCEITOS INICIAIS E FUNDAMENTAIS DE PROGRAMAÇÃO 1.1 Definição e Noção de algoritmos. 1.2 Formas de representação. 1.3 Tipos de dados, variáveis e constantes. 2 1.4 Instruções primitivas e operadores. 1.5 Estrutura de um Programa. 3 2 ESTRUTURAS DE DECISÃO 2.1. Desenvolvimento de Algoritmos: análise e resolução de problemas 2.2 Estrutura condicional simples. 4 2.3 Estrutura condicional composta. 2.4 Estrutura condicional com múltiplas possibilidades de escolha. 5 3 ESTRUTURAS DE REPETIÇÃO 3.1 Repetição controlada por variável. 3.2 Repetição condicional com teste no início (Enquanto e para). 6 3.3 Repetição condicional com teste no final (Repita). 7 ESTRUTURAS DE DECISÃO e ESTRUTURAS DE REPETIÇÃO Desenvolvimento de Algoritmos: análise e resolução de problemas Estrutura condicionais e repetitivas. 8 Desenvolvendo programas utilizando estruturas condicionais e repetitivas. 9 Avaliação Parcial 10 4 VETORES E MATRIZES 4.1. Conceitos de vetores 4.2. Declaração de vetores 4.3. Operações de Manipulação de vetores 11 Desenvolvendo programas utilizando VETORES 12 4.4. Conceito de Matrizes 4.5. Declaração de Matrizes 4.6. Operações sobre Matrizes 13 Desenvolvendo programas utilizando MATRIZES 14 5 CADEIAS DE CARACTERES e TIPOS ESTRUTURADOS 5.1 Conceitos iniciais em strings. 5.2 Operações básicas para manipulação de cadeias de caracteres. 5.3 TIPOS ESTRUTURADOS 15 6 SUBALGORITMOS: FUNÇÕES E PROCEDIMENTOS - MODULARIZAÇÃO 6.1 Conceitos de Modularização e decomposição 6.2 Procedimentos. 6.3 Funções. 16 6.4 Parâmetros e passagem de parâmetros. 6.5 Variáveis locais e globais. 17 7 ESTILO DE PROGRAMAÇÃO E OS MÉTODOS “TOP-DOWN” e “DOWN-UP”. 7.1 Importância do estilo e a qualidade do programa. 7.2 Refinamentos e o método “Top-Down”. 7.3 Fases do processo de programação. 7.4 A programação como atividade humana. 18 Prova Escrita Oficial 19 Revisão e preparação para Exame Especial 20 Prova Exame Especial * */28 Algoritmos e Programação Plano de Curso Discussão sobre o Plano de Curso Algoritmos e Programação DISTRIBUIÇÃO DOS PONTOS: SISTEMA DE AVALIAÇÃO 1° Avaliação - PESO 4,0 Atividades Avaliativas a Critério do Professor Práticas: 2,00 Teóricas: 7,00 Outras: 1,00 Total: 10 2° Avaliação - PESO 6,0 Atividades Prova Escrita Oficial Práticas: 2,00 Teóricas: 7,00 Outras: 1,00 Total: 10 * */28 Algoritmos e Programação CONCEITOS BÁSICOS: Avaliação e definições. Disciplina: Algoritmos e Programação Paulo Cesar Lopes * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos ALGORITMOS Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos ALGORITMOS... ??????????????? Etimologia A palavra algoritmo tem origem no sobrenome, Al-Khwarizmi, do matemático persa do século IX, Mohamed ben Musa, cujas obras foram traduzidas no ocidente cristão no século XII, tendo uma delas recebido o nome Algorithmi de numero indorum, sobre os algoritmos usando o sistema de numeração decimal (indiano). Outros autores, entretanto, defendem a origem da palavra em Al-goreten (raiz - conceito que se pode aplicar aos cálculos). Um algoritmo é uma sequência finita de instruções bem definidas e não ambíguas, cada uma das quais pode ser executada mecanicamente num período de tempo finito e com uma quantidade de esforço finita * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos ALGORITMOS X PROGRAMAS Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos ingredientes 1 colher (sobremesa) de sementes de erva-doce 1 colher (sobremesa) de fermento em pó 1 xícara (chá) de óleo 1 xícara (chá) de leite 1 xícara (chá) de farinha de trigo 2 xícaras (chá) de fubá 2 xícaras (chá) de açúcar 3 ovos Preparo Coloque no liquidificador os ovos, o açúcar, o fubá, a farinha de trigo, o leite e o óleo. Bata até obter uma mistura homogênea. Junte o fermento e as sementes de erva-doce e misture sem bater. Unte e enfarinhe uma fôrma com furo no meio e despeje a massa. Leve ao forno preaquecido em temperatura média (200ºC) até dourar, ou até que enfiando um palito no bolo ele saia seco. Desenforme o bolo ainda morno e, se preferir, salpique açúcar e canela antes servir. * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos ALGORITMOS X PROGRAMAS Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos Algoritmo Textual Informal Modo de preparo: Bata a margarina, as gemas e o açúcar até ficar cremoso Junte o leite, o coco e a farinha e continue batendo Acrescente o fermento e, por último, as claras em neve Unte uma forma com manteiga e leve ao forno para assar Quão cremoso?!? De uma vez só?!? Quanto tempo?!? Quanto tempo?!? * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos ALGORITMOS X PROGRAMAS Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos Algoritmo Textual Informal Refinado Modo de preparo: Bata a margarina, as gemas e o açúcar por 15 minutos Junte o leite, o coco e a farinha e continue batendo por mais15 minutos Acrescente 20 g de fermento e, por último, as claras em neve Unte uma forma com manteiga e leve ao forno para assar por 30 minutos * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos Exemplos e Representações dos ALGORITMOS Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos Repetir 10 vezes os quatro passos abaixo: Levantar e abaixar braço direito; Levantar e abaixar braço esquerdo; Levantar e abaixar perna esquerda; Levantar e abaixar perna direita. DESAFIO: Para mostrar outro exemplo de algoritmo considere o seguinte problema. Dispomos de duas vasilhas com capacidades de 9 e 4 litros respectivamente. As vasilhas não tem nenhum tipo de marcação, de modo que não é possível ter medidas como metade, um quarto ou um terço. Mostre uma seqüência de passos, que usando as vasilhas de 9 e 4 litros encha uma terceira vasilha de medida desconhecida, superior a nove litros, com seis litros de água. Considere que você tem água sem limite. * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos Representações dos ALGORITMOS Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos Uma possível solução é: Encha a vasilha de 9 litros; Usando a vasilha de 9 litros, encha a vasilha de 4 litros; Despeje o que sobrou na vasilha de 9 litros (5 litros) na terceira vasilha. Observe que falta um litro para completar os seis litros; Esvazie a vasilha de 4 litros; Torne a encher a vasilha de 9 litros; Usando a vasilha de 9 litros encha a vasilha de 4 litros; Esvazie a de 4 litros; Usando o que restou na vasilha de 9 litros (5 litros), encha novamente a vasilha de quatro litros; Despeje o que sobrou na vasilha de 9 litros (1 litro) na terceira vasilha, que agora tem 6 litros. * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos Exemplos e Representações dos ALGORITMOS Algoritmo Gráfico-Textual Informal Montagem de um Aeromodelo. * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos Exemplos e Representações dos ALGORITMOS Algoritmo Gráfico-Textual Informal Trocar um pneu.. * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos Exemplos e Representações dos ALGORITMOS Algoritmo Fluxograma * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos ALGORITMOS X PROGRAMAS Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos Exemplos e Representações dos ALGORITMOS Algoritmo "SomaDeDoisValores"; variável: P1,P2,P3: inteiro; inicio Coloque a frase("Digite um numero") em P4; Apresente a frase de P4 Leia o numero e coloque-o em P2; Coloque a frase("Digite outro numero") em P5; Apresente a frase de P5; Leia o numero e coloque-o em P3; Some o numero de P2 com P3 e coloque em P1; Apresente o conteúdo de P3; fim. Algoritmo Portugol * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos Exemplos e Representações dos ALGORITMOS Algoritmo "SomaDeDoisValores"; variável: SOMA-P1,A-P2,B-P3: inteiro; inicio Escreva("Digite um numero"); Leia(A-P2); escreva("digite outro numero"); leia(B-P3); Soma ← A-P2 + B-P3; escreva(SOMA-P3); fim. Algoritmo Portugol (Textual Formal) * */28 Algoritmos e Programação Avaliação e Revisão/Conceitos Básicos Avaliação/Revisão/Conceitos Básicos Retorno Algoritmos e Programação Dois exemplos: X-Real-Time-Kernel, Free-RTOS Máquina de von Newmann SO “é um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos, etc.), além de fornecer uma interface entre o computador e o usuário. É o primeiro programa que a máquina executa no momento em que é ligada (num processo chamado de bootstrapping) e, a partir de então, não deixa de funcionar até que o computador seja desligado. O sistema operacional reveza sua execução com a de outros programas, como se estivesse vigiando, controlando e orquestrando todo o processo computacional.! Wikipedia. http://pt.wikipedia.org/wiki/Sistema_operativo#Classifica.C3.A7.C3.B5es Exemplos de SO: http://pt.wikipedia.org/wiki/Sistema_operativo#Exemplos_de_sistemas_operacionais_ativos “Um Sistema Operacional de Tempo Real (RTOS da sigla anglo-saxónica Real Time Operating System) é um sistema operacional/operativo destinado à execução de múltiplas tarefas onde o tempo de resposta a um evento (externo ou interno) é pré-definido; não importando, como é comum pensar-se, se a velocidade de resposta é elevada ou não. Esse tempo de resposta é chamado de prazo da tarefa e a perda de um prazo, isto é, o não cumprimento de uma tarefa dentro do prazo esperado, caracteriza uma falha do sistema. Outra característica dos sistemas de tempo real é a sua interação com o meio ao redor. Os STR tem que reagir, dentro de um prazo pré-definido, a um estímulo do meio. Por exemplo, em um hospital, o sistema que monitora os batimentos cardíacos de um paciente deve alarmar os médicos caso haja alteração nos batimentos. Outro aspecto importante dos STR é a previsibilidade. O sistema é considerado previsível quando podemos antecipar seu comportamento independentemente de falhas, sobrecargas e variações de hardware.” Wikipedia * */28 Algoritmos e Programação Avaliação e Revisão/Conceitos Básicos Avaliação/Revisão/Conceitos Básicos Retorno Algoritmos e Programação SO “é um programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema (definir qual programa recebe atenção do processador, gerenciar memória, criar um sistema de arquivos, etc.), além de fornecer uma interface entre o computador e o usuário. É o primeiro programa que a máquina executa no momento em que é ligada (num processo chamado de bootstrapping) e, a partir de então, não deixa de funcionar até que o computador seja desligado. O sistema operacional reveza sua execução com a de outros programas, como se estivesse vigiando, controlando e orquestrando todo o processo computacional.! Wikipedia. http://pt.wikipedia.org/wiki/Sistema_operativo#Classifica.C3.A7.C3.B5es Exemplos de SO: http://pt.wikipedia.org/wiki/Sistema_operativo#Exemplos_de_sistemas_operacionais_ativos “Um Sistema Operacional de Tempo Real (RTOS da sigla anglo-saxónica Real Time Operating System) é um sistema operacional/operativo destinado à execução de múltiplas tarefas onde o tempo de resposta a um evento (externo ou interno) é pré-definido; não importando, como é comum pensar-se, se a velocidade de resposta é elevada ou não. Esse tempo de resposta é chamado de prazo da tarefa e a perda de um prazo, isto é, o não cumprimento de uma tarefa dentro do prazo esperado, caracteriza uma falha do sistema. Outra característica dos sistemas de tempo real é a sua interação com o meio ao redor. Os STR tem que reagir, dentro de um prazo pré-definido, a um estímulo do meio. Por exemplo, em um hospital, o sistema que monitora os batimentos cardíacos de um paciente deve alarmar os médicos caso haja alteração nos batimentos. Outro aspecto importante dos STR é a previsibilidade. O sistema é considerado previsível quando podemos antecipar seu comportamento independentemente de falhas, sobrecargas e variações de hardware.” Wikipedia * */28 Algoritmos e Programação Programas Aplicativos Programas de SistemasHardware Algoritmos e Programação Hardware (Equipamentos) Microcodigos Sistema Operacional Software Básico Compiladores Editores BDs Aplicações Folha de Pag. Banking Compras Arquitetura em camadas um sistema computacional Avaliação/Revisão/Conceitos Básicos http://www.ufpa.br/dicas/progra/protipos.htm * */28 Algoritmos e Programação Processo, Algoritmos e Programação Arquitetura em camadas um sistema computacional Avaliação/Revisão/Conceitos Básicos A programação de um sistema computacional pode ser resumida em 3 passos básicos Entrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP Processamento http://www.ufpa.br/dicas/progra/protipos.htm * */28 Algoritmos e Programação Pro Exibir a média de dois números cesso, Algoritmos e Programação Arquitetura em camadas um sistema computacional Avaliação/Revisão/Conceitos Básicos Entrada Saída Dispositivo de Entrada Dispositivo de Saída Memória UCP 6 , 8 (6 + 8) / 2 7 Processamento http://www.ufpa.br/dicas/progra/protipos.htm * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos Programa, Processo, Thread Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos Exemplo de alguns passos para a execução de um programa sobre a visão do sistema operacional. * */28 Algoritmos e Programação Processo, Avaliação e Revisão/Conceitos Básicos Abstração Retorno Algoritmos e Programação Avaliação/Revisão/Conceitos Básicos Operação mental que observa a realidade e captura apenas os aspectos relevantes para um contexto *
Compartilhar