Alg I Aula01
Transcript of Alg I Aula01
Agenda da Aula• Apresentação• Contrato Pedagógico• Plano de Ensino• Considerações Gerais sobre a Disciplina
Apresentação• Profª. Malgarete Rodrigues da Costa• E-mail: [email protected]
• Formação– Licenciada/Bacharel – Matemática – UFPR– Especialista em Inteligência Computacional – UFPR
– Mestre em Informática Industrial – Ênfase em Inteligência Artificial – UTFPR.
– Doutoranda – Informática Industrial – Ênfase em Simulação de Sistemas – UTFPR.
Contrato Pedagógico• Avaliações – definidas no Plano de Aula
• Faltas• É uma matéria que requer:
– Dedicação– Treinamento (Aprende-se algoritmos, fazendo)
Contrato pedagógico• Sistema de Avaliação:
– Por competência– Avaliações escritas e agendadas– APS (Atividade Prática Supervisionada)– 75% de presenças– Competências:
•Aprovação:– 100% das necessárias e pelo menos 60% das complementares
•Pendência:– Pelo menos 50% das necessárias e pelo menos 50% das complementares
Aprovação
Para ser aprovado em uma disciplina o aluno
deve ter:
• 100% das competências necessárias (N) construídas
• Mínimo de 60% das competências complementares (C)
construídas
• Mínimo de 75% de freqüência
PendênciaPara ficar em pendência em uma disciplina o
aluno deve ter:
• Mínimo de 50% das competências necessárias (N)
construídas
• Mínimo de 50% das competências complementares
(C) construídas
• Mínimo de 75% de frequência
Classificação Status Competência TotalN Competência 1
5N Competência 2N Competência 3N Competência 4N Competência 5C Competência 6
5C Competência 7C Competência 8C Competência 9C Competência 10
• 5/5 Competências Necessárias construídas 100%• 3/5 Competências Complementares construídas 60%• 80% de freqüência às aulas
Simulação
Classificação Status Competência TotalN Competência 1
5N Competência 2N Competência 3N Competência 4N Competência 5C Competência 6
5C Competência 7C Competência 8C Competência 9C Competência 10
• 5/5 Competências Necessárias construídas 100%• 5/5 Competências Complementares construídas 100%• 70% de freqüência às aulas
Simulação
Classificação Status Competência TotalN Competência 1
6
N Competência 2N Competência 3N Competência 4N Competência 5N Competência 6C Competência 7
5C Competência 8C Competência 9C Competência 10C Competência 11
• 3/6 Competências Necessárias construídas 50%• 5/5 Competências Complementares construídas 100%• 88% de freqüência às aulas
Simulação
Contrato Pedagógico• Reconstruções:
– No decorrer da Etapa– No final da Etapa
• Portal:– Plano de Ensino– Planos de Aula– Avisos– Fórum– Entre outros conteúdos e ferramentas
Plano de Ensino• Competências:
1- Codificar problemas reais em algoritmos utilizando português estruturado. (C)
2 - Compreender e aplicar o conceito de constantes, variáveis e seus possíveis tipos de dados. (N)
3 - Compreender e aplicar os conceitos de entrada, processamento e saída de dados na resolução de problemas algorítmicos. (N)
4 - Identificar e codificar estruturas condicionais simples, compostas e aninhadas para resolver problemas algorítmicos. (N)
5 Identificar e codificar estruturas de repetição simples e aninhadas para resolver problemas algorítmicos. (N)
6 - Identificar, classificar e aplicar os operadores aritméticos, lógicos e relacionais em problemas algorítmicos. (C)
7 - Identificar e aplicar estruturas homogêneas de armazenamento com uma dimensão em problemas algorítmicos. (N)
8 - Identificar e aplicar estruturas homogêneas de armazenamento com duas ou mais dimensões em problemas algorítmicos. (N)
9 - Aplicar o conceito de proposição e conectivos lógicos. (C)
10 - Construir e avaliar expressões lógicas por meio de tabelas-verdades. (C)
11 - Compreender a aplicar os conceitos de modularização. (C)
Plano de Ensino• Bibliografia Básica:
– FORBELLONE, André L. V.; Henri Frederico E. Lógica de programação: a construção de algoritmos e estrutura de dados. 3. ed. São Paulo: Ed. Pearson Prentice Hall, 2005.
– MANZANO, José Augusto Navarro Garcia; OLIVEIRA, Jayr Figueiredo de. Algoritmos : lógica para desenvolvimento de programação de computadores. 22. ed. São Paulo: Ed. Érica, 2009.
– VILARIM, Gilvan. Algoritmos: Programação para Iniciantes. 2. ed. Rio de Janeiro: Ed. Ciência Moderna, 2004.
Plano de Ensino
• Bibliografia Complementar:– CORMEN, Thomas H.... [et al.] Algoritmos: teoria e prática. Tradução Vandenberg D. Souza. Rio de Janeiro: Ed. Campus, 2002.
– SOUZA, Marco Antônio Furlan. Algoritmos e Lógica de Programação. São Paulo. Editora Pioneira, 2005.
Considerações Gerais sobre a Disciplina
• Experiência da Turma
• E quem não tem experiência?
• Dificuldade da Disciplina
Competências da Aula
• 1 - (C) Codificar problemas reais em algoritmos utilizando português estruturado.
Sistema Computacionais
Hardware
Software
Software Básico
Software Aplicativo
•Comerciais•Industriais•Cooporarivos•Entretenimento•Embarcados..
Conceito de Problema• Problema (Dicionário Michaelis):• Substantivo Masculino.• Questão matemática proposta para ser resolvida.
• Questão difícil, delicada, suscetível de diversas soluções.
• Qualquer coisa de difícil explicação; mistério, enigma.
• Dúvida, questão.
Exemplos de Problema• Problemas fazem parte do nosso cotidiano.• Exemplos de problemas cotidianos:• Trocar a resistência de um chuveiro.• Definir onde Almoçar.
• Sempre que nos deparamos com umproblema buscamos um procedimento para
solucionar o mesmo.
Exemplo de SoluçãoPor exemplo, para trocar a resistência de um
chuveiro devemos:
• Adquirir uma resistência nova;• Localizar o chuveiro a ser manipulado;
• Abrir o chuveiro;• Retirar a resistência defeituosa;• Colocar a resistência nova;• Fechar o chuveiro;• Descartar a resistência defeituosa.
LógicaVocê já ouviu falar em Lógica? Não?
Mas, certamente já ouviu alguém responder algo do tipo: 'é lógico que eu sei“, ou “é lógico que isso não daria certo”. Não é?
Como você definira lógica?
LógicaA palavra lógica vem do grego clássico λογική (logos), que significa palavra, pensamento, ideia, e é o ramo da filosofia que cuida das regras do bem pensar, ou do pensar correto.É também a designação para o estudo de sistemas de raciocínio, ou seja, sistemas que definem como se “deveria” realmente pensar para não errar, usando a razão, dedutivamente e indutivamente.
Meu chinelo está dentro do
armário
O armário está
fechado.
Logo preciso abrir o
armário para pegar meu chinelo.Logo, um sistema lógico é um conjunto de regras
de que tem por objetivo representar formalmente o raciocínio válido, dedutivo ou indutivo.
LógicaA utilização da lógica é fundamental para a solução de problemas, sem o uso da mesma é impossível alcançar seus objetivos com eficiência e eficácia.
Precisamos lembrar sempre que ninguém ensina outra pessoa a pensar, apenas ajuda a desenvolver e aperfeiçoar esta técnica, com persistência e constância.
Lógica e Algoritmos
Observe que cada situação-problema, ou processo, para ser solucionada precisa seguir algumas etapas que podemos chamar de especificação de sequência ordenada de passos.
Porque entender o conceito de Lógica? O que lógica tem a ver com Algoritmos????
A esta especificação damos o nomeALGORITMO.
Algoritmos
Existem inúmeras maneiras de conceituarmos algoritmos, porém é bem comum definirmos como uma sequência de passos que visam atingir um objetivo.
Como podemos conceituar Algoritmos????
Algoritmo - Definições• Um algoritmo é uma sequencia ordenada e finita de etapas, cuja execução passo a passo resolve um determinado problema.
• Um algoritmo representa um conjunto de regras para a solução de um problema.
• Um algoritmo é uma sequencia de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema.
Algoritmos – Definições Formais
• “Um conjunto finito de regras que provê uma sequencia de operações para resolver um tipo de problema específico” [KNUTH]
• “Sequencia ordenada, e não ambígua, de passos que levam à solução de um dado problema” [TREMBLAY]
Algoritmo - Definições• “Processo de cálculo, ou de resolução de um grupo de problemas semelhantes, em que se estipulam, com generalidade e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema” [AURÉLIO]
AlgoritmoUm algoritmo deve possuir as seguintes características:
• Ter início e fim;• Ser escrito em termos de ações ou comandos bem definidos;
• Deve ser fácil de interpretar e codificar, ou seja, deve ser o intermediário entre a linguagem falada e a linguagem de programação;
• Ter uma sequência lógica.
Algoritmo - Exemplo• A seguir será apresentado um algoritmo composto pelos passos necessários para escovar os dentes.
• INÍCIO
• Pegue a escova de dentes;• Pegue o creme dental com a outra mão;• Coloque creme dental na escova;• Coloque a escova na boca e escove os dentes e a língua;• Tire a escova da boca;• Lave a boca e a escova com água.
• FIM
Algoritmo – sequencia de passos
• Escreva um algoritmo para ir de sua casa até o trabalho– Abrir a porta de casa;– Ir ao ponto de ônibus;– Aguardar ônibus para o trabalho;– Entrar no ônibus;– Pagar a passagem;– Acomodar-se no ônibus;– Aguardar o ponto de chegada;– Saltar o ônibus;– Entrar no prédio da empresa;
Algoritmos – Exemplos• Exemplos de algoritmos:
– Programar o timer da TV;– Utilizar o caixa automático (saque);– Cálculo de saldo em conta-corrente;– Cálculo de IR.
• Contra-exemplos de algoritmos:– Listas de compras;– Dança informal;
Lembrando• Um algoritmo é “uma solução” e não “a solução” de um problema.
• Um problema pode ser resolvido por mais de um algoritmo!
Algoritmos• Para aprimorar nosso conceito de algoritmo, vamos tornar mais evidente alguns outros conceitos, como, por exemplo, o de ação:
• “Ação é um acontecimento que a partir de um estado inicial, após um período de tempo finito, produz um estado final previsível e bem definido”.
• “Estado é a situação atual de dado objeto.”
Algoritmos - Características
• O problema que o algoritmo representa é composto por três fases:
• Exemplo:
Algoritmos - Características
• Finitude: Um algoritmo deve sempre terminar após um número finito de passos.
• Definição: Cada passo de um algoritmo deve ser precisamente definido. As ações devem ser definidas rigorosamente e sem ambiguidades.
• Entradas: Um algoritmo deve ter zero ou mais entradas, isto é quantidades que lhe são fornecidas antes do algoritmo iniciar.
Algoritmos - Características
• Saídas: Um algoritmo deve ter uma ou mais saídas, isto é, quantidades que tem uma relação específica com as entradas.
• Efetividade: Um algoritmo deve ser efetivo. Isto significa que todas as operações devem ser suficientemente básicas de modo que possam ser em princípio executadas com precisão em um tempo finito por um humano usando papel e lápis.
Algoritmos• Escreva um algoritmo que calcula o produto de dois números.
MAS PRIMEIRO– Entenda o problema!!!– Quais são as entradas?– Quais são as etapas/passos/ações?– Qual é a saída?
ProcessamentoEntradas Saídas
Algoritmos x Informática
Execução MUITO rápida!
----------------------------------------
Algoritmo
----------------------------------------
Código fonte
----------------------------------------
Código de máquina
“TRADUÇÃO”
Compilação ou
Interpretação
Algoritmos x Informática
Algoritmo
C
Java
Delphi
Software
Software
Software
Compilador C
Compilador Java
Compilador Delphi
...... Software.....
Algoritmos – Programa Delphi
Ler BaseLer AlturaÁrea = Base * Altura / 2Escrever Área
procedure TForm1.btnOkClick(Sender: TObject);var base : Real; altura : Real; area : Real;begin
base := StrToFloat(edtBase.Text); altura := StrToFloat(edtAltura.Text);
area := base * altura / 2;
ShowMessage('A área é: ' + FloatToStr(area));
end;
Algoritmo
Código FontePrograma
Algoritmos – Programa C
Ler BaseLer AlturaÁrea = Base * Altura / 2Escrever Área
#include <stdio.h>int main(void){ float base, altura, area; printf("\n Informe a base ->"); scanf("%d", base);
printf("\n Informe a altura ->"); scanf("%d", altura);
area = base * altura / 2;
printf("\n A área é %d", altura); return 0}
Algoritmo
Código Fonte
Programa
Algoritmos x Informática• Um programa é uma seqüência de
comandos que instruem a máquina a fazer algo, e estes comandos são escritos em uma linguagem capaz de ser entendida pela máquina.
• Antes da escrita dos programas, contudo, alguém precisa definir a lógica de colocação destes comandos – é aí que entram os algoritmos.
• Programa é a representação de um algoritmo através da utilização de uma Linguagem de Programação.
• Portanto, um programa é um conjunto finito de instruções, numa determinada seqüência, que quando é executado produz a solução de um problema.
Algoritmos x Informática
Algoritmos• Exercícios:
– Escreva um algoritmo que calcule a soma de dois números.
– Escreva um algoritmo que calculo a área de um círculo.
– Escreva um algoritmo que calcule a área de um quadrado.
– Escreva um algoritmo que calculo a área de um retângulo.
Algoritmos
• Faça um programa que calcule da área de um triangulo eqüilátero: Área = Base * Altura / 2
• Algoritmo:Ler BaseLer AlturaÁrea = Base * Altura / 2Escrever Área
Resumo da Aula
Chamada 08:15 e 10:15 manhã19:15 e 21:05 noite
Faltas 25%Avaliação Escrita por
competênciaReconstrução durante a etapa
No decorrer da etapa
Reconstrução final No final da etapa
Resumo da Aula
Sistemas Computacionais dependem do Hardware e dos Softwares Básicos.Os Algoritmos são criados no momento de Projeto do Ciclo de Vida de um Software.Algoritmo é uma seqüência de passos que visam atingir um objetivo bem definido.Um algoritmo é uma seqüência de instruções ordenadas de forma lógica para a resolução de uma determinada tarefa ou problema.