Porque aprender à Programar? • Para prever movimentos do tipo Porque aprender à Programar? • Como fazer isso? • Respondendo a perguntas do tipo: ▫ Qual sua posição, velocidade e aceleração atuais? ▫ Como efeitos externos afetam o movimento? Porque aprender à Programar? Porque aprender à Programar? • Para criar modelos numéricos, pois ▫ Construir é caro ▫ Construir é perigoso ▫ Pode-se melhorar o projeto sem construí-lo ▫ Pode-se verificar as falhas sem construí-lo ▫ Para pensar na melhor solução ▫ Para comunicar e descrever o sistema físico ▫ Para realizar previsões ▫ Para observar o que ocorrerá após a construção ▫ Para controlar a construção ▫ Para examinar e treinar Porque aprender à Programar? • Para programar usamos: ▫ Linguagens de programação: C, C++, C#, Java Fortran, Fortran IV, Fortran 66, Fortran 77, Fortran 90, Fortran 95 Pascal, Delphi ▫ Softwares de simulação: MULTISIM, SIMULINK ▫ Softwares de computação gráfica: AUTOCAD, MICROSTATION ▫ Softwares matemáticos: Maple, Mathematica, Geogebra Porque aprender à Programar? • Para Estudar Mecânica de Sólidos Para construir uma estrutura como esta, temos de conseguir responder a várias questões que de imediato se põem, por exemplo: Qual a massa da cobertura e como ela se distribui? Qual é a área que ocupa? Em que pontos devem ser colocados os apoios e que cargas devem suportar? Que ângulos com a vertical devem ser localizados os apoios? Porque aprender à Programar? • Para Perceber o Eletromagnetismo Dipolo magnético supercondutor usado num acelerador do CERN para acelerar partículas elementares até velocidades muito altas. Porque aprender à Programar? • Para Perceber a Mecânica Porque aprender à Programar? • Para Perceber a Mecânica dos Fluidos Como aprender à Programar? • Inicialmente deve-se aprender o “idioma” correto da programação, ou seja, uma linguagem de programação. • Mas antes da linguagem de programação, deve- se aprender suas regras, conhecidas pelo nome de algoritmo. • Para aprender a respeito de algoritmos, deve-se aprender e absorver a lógica de programação. • Isto está tudo interligado. Algoritmos e Lógica de Programação • Pode-se dizer que, Lógica de Programação é a técnica de desenvolver sequências lógicas para atingir um determinado objetivo. • Essas sequências lógicas são adaptadas para cada linguagem de programação. • Uma sequência lógica é denominada algoritmo. • Pode-se definir um algoritmo por: Um conjunto finito de regras que provê uma seqüência de operações para resolver um tipo de problema específico. Características de Algoritmos • ser finito; • não dar margem à dupla interpretação; • capacidade de receber dado(s) de entrada do mundo exterior; • poder gerar informações de saída para o mundo externo ao do ambiente do algoritmo; • ser efetivo (todas as etapas especificadas no algoritmo devem ser alcançáveis em um tempo finito). Formas de representar um algoritmo • Descrição narrativa: ▫ Receita de Pizza: Providencie ingredientes Misture os ingredientes e faça a massa Coloque o recheio Despeje a mistura na forma de bolo Leve a forma ao forno Espere o tempo necessário Retire a forma do forno Não Deixe esfriar Coma tudo Formas de representar um algoritmo • Vantagens: ▫ o português é bastante conhecido por nós; • Desvantagens: ▫ imprecisão; ▫ pouca confiabilidade (a imprecisão acarreta a desconfiança); ▫ extensão (normalmente, escreve-se muito para dizer pouca coisa). Formas de representar um algoritmo • Fluxograma: ▫ Utilização de símbolos gráficos para representar algoritmos. No fluxograma existem símbolos padronizados para início, entrada de dados, cálculos, saída de dados, fim, etc
Entrada de Saída de Início/Fim Cálculo Dados Dados
Seqüência das instruções
Decisão Repetição Formas de representar um algoritmo Significado • Exemplo: Início Início do algoritmo.
Pede para o usuário
Leia n1,n2 digitar dois números que serão guardados em n1 e n2.
Md=(n1+n2)/2 Calcula a média
aritmética dos dois números e guarda em Md. Escreva Md Escreve o resultado do cálculo. Fim Final do algoritmo. Formas de representar um algoritmo • Vantagens: ▫ Uma das ferramentas mais conhecidas; ▫ Figuras dizem muito mais que palavras; ▫ Padrão mundial . • Desvantagens: ▫ Faz com que a solução do problema já esteja amarrada a dispositivos físicos; ▫ Pouca atenção aos dados, não oferecendo recursos para descrevê-los ou representá-los; ▫ Complica-se à medida que o algoritmo cresce Formas de representar um algoritmo • Algoritmos ▫ Consiste na definição de uma pseudolinguagem de programação, cujos comandos estão próximas da linguagem natural. • Exemplo: ▫ Algoritmo Calcula_Média ▫ Início ▫ Leia n1,n2 ▫ Md (n1+n2)/2 ▫ Escreva Md ▫ Fim Formas de representar um algoritmo • Vantagens: ▫ Independência física da solução (solução lógica apenas); ▫ Usa o português como base; ▫ Pode-se definir quais e como os dados vão estar estruturados; ▫ Passagem quase imediata do algoritmo para uma linguagem de programação qualquer. • Desvantagens: ▫ Exige a definição de uma linguagem não real para trabalho; ▫ Não padronizado Algoritmos • Existem 3 estruturas básicas de controle nas quais se baseiam os algoritmos: ▫ Sequenciação, ▫ Decisão ou Seleção, ▫ Repetição Algoritmos • Sequenciação: ▫ Os comandos do algoritmo fazem parte de uma seqüência, onde é relevante a ordem na qual se encontram os mesmos, pois serão executados uma de cada vez, estritamente, de acordo com essa ordem. De uma forma genérica, poderíamos expressar uma seqüência da seguinte maneira: ▫ <Comando 1> ▫ <Comando 2> ▫ ... ▫ <Comando n> Algoritmos • Exemplo de algoritmo para troca de uma lâmpada – versão 1: • Pegue uma escada e uma lâmpada, coloque embaixo da lâmpada, suba na escada, retire a lâmpada, coloque uma lâmpada nova, desça da escada, guarde a escada.
• O que ocorrerá se a lâmpada não acender?
Algoritmos • Decisão ou Seleção ▫ Essa estrutura também é conhecida por estrutura condicional. Há a subordinação da execução de um ou mais comandos à veracidade de uma condição. Vejamos o funcionamento: SE <Condição> ENTÃO <Comando 1> SENÃO <Comando 2> ▫ Se a <Condição> for verdadeira será executado o <Comando 1> e, em caso contrário, teremos a execução de <Comando 2>. Algoritmos • Exemplo de algoritmo para troca de uma lâmpada – versão 2: • Pegue uma escada e algumas lâmpadas, coloque embaixo da lâmpada, suba na escada, retire a lâmpada, coloque uma lâmpada nova, desça da escada, ligue o interruptor, SE a lâmpada acender, ENTÃO guarde a escada e as outras lâmpadas, SENÃO, troque novamente a lâmpada e guarde a escada e as outras lâmpadas.
• O que ocorrerá se a segunda lâmpada não acender?
Algoritmos • Repetição ▫ Essa estrutura também é conhecida por “looping”, ”loop” ou laço. A repetição permite que tarefas individuais sejam repetidas um número determinado de vezes ou tantas vezes quantas uma condição lógica permita. Vejamos alguns exemplos: vou comer pizza até elas acabarem; comerei cinco pizzas; enquanto tiver dinheiro, vou comer pizza. Algoritmos • A estrutura de repetição pode ser representada de três maneiras: ▫ REPITA determinada tarefa ATÉ QUE uma condição seja satisfeita; ▫ FAÇA determinada tarefa n VEZES; ▫ ENQUANTO uma condição não estiver satisfeita, FAÇA determinada tarefa. Algoritmos • Exemplo de algoritmo para troca de uma lâmpada – versão 3: • Pegue uma escada e uma caixa de lâmpadas, coloque embaixo da lâmpada, suba na escada e retire a lâmpada, coloque uma lâmpada nova, desça da escada, ligue o interruptor, REPITA este procedimento ATÉ a lâmpada acender, e por fim, guarde a escada e o restante das lâmpadas.
• E se a lâmpada nunca acender?
Algoritmos • Exemplo de algoritmo para troca de uma lâmpada – versão 4: • Pegue uma escada e uma caixa de lâmpadas, coloque embaixo da lâmpada, suba na escada e retire a lâmpada, coloque uma lâmpada nova, desça da escada, ligue o interruptor, FAÇA este procedimento 10 vezes para trocar a lâmpada, e por fim, guarde a escada.
• E se a lâmpada tiver acendido na primeira vez?
Algoritmos • Exemplo de algoritmo para troca de uma lâmpada – versão 5: • Pegue uma escada e uma caixa de lâmpadas, coloque embaixo da lâmpada, suba na escada e retire a lâmpada, coloque uma lâmpada nova, desça da escada, ligue o interruptor, ENQUANTO a lâmpada não acender FAÇA este procedimento, e por fim, guarde a escada.
• E se a lâmpada nunca acender?
Algoritmos • Exemplo de algoritmo para troca de uma lâmpada – versão final: • Ligue o interruptor, SE tiver energia elétrica e a lâmpada não acender ENTÃO, Pegue uma escada e uma caixa de lâmpadas, coloque embaixo da lâmpada, suba na escada e retire a lâmpada, coloque uma lâmpada nova, desça da escada, ligue o interruptor, SE a lâmpada acender ENTÃO, guarde a escada e as lâmpadas, e finalize o algoritmo, SENÃO, REPITA o procedimento ATÉ que a lâmpada acenda ou que as lâmpadas da caixa acabem, e por fim, guarde a escada e o restante das lâmpadas. Lógica de Programação • É a técnica de encadear pensamentos para atingir determinado objetivo.
• Os passos executados até atingir um objetivo ou
solução de um problema são chamados de Seqüência Lógica.
• Isso é feito na forma de instruções, e entende-se por
instruções “um conjunto de regras ou normas definidas para a realização ou emprego de algo”. Lógica de Programação • Instruções são um conjunto de regras ou normas definidas para a realização ou emprego de algo. Em informática, é o que indica a um computador uma ação elementar a executar
• Entre as ferramentas mais usadas para se
aprender a lógica de programação destacam-se: ▫ Linguagem LOGO ▫ Linguagem PROLOG ▫ Linguagem de blocos, como Scratch Linguagem Logo • Logo é uma linguagem de programação interpretada, voltada para crianças, jovens e até adultos. É utilizada com grande sucesso como ferramenta de apoio ao ensino regular e por aprendizes em programação de computadores.
• O uso da linguagem LOGO permite a
compreensão e o entendimento das instruções que compõem uma determinada sequência lógica. Liguagem Logo - XLogo Linguagem Logo • Comandos primitivos Linguagem Logo Linguagem Logo Linguagem Logo • Exemplos: ▫ Quadrado: repita 4 [pf 200 pd 90] Linguagem Logo • Exemplos: ▫ Circunferência: repita 360 [pf 1 pd 1] Linguagem Logo • Além das primitivas já existentes, você pode criar seus próprios comandos. Eles são chamados procedimentos.
• Procedimento – funções ou subprogramas que
podem ser executados com ou sem parâmetros.
• Procedimentos começam pela palavra “aprenda”
e terminam com a palavra “fim”. Eles podem ser criados utilizando o editor interno do Xlogo. Linguagem Logo • Exemplo: ▫ aprenda quadrado repita 4 [pf 100 pd 90] ▫ Fim
• Uma vez que o procedimento está escrito e salvo,
basta chamar o procedimento pelo nome que ele é executado. Linguagem Logo • aprenda koch :tamanho :geração ▫ se :geração = 0 [parafrente :tamanho pare] ▫ koch :tamanho/3 :geração-1 ▫ paraesquerda 60 ▫ koch :tamanho/3 :geração-1 ▫ paradireita 120 ▫ koch :tamanho/3 :geração-1 ▫ paraesquerda 60 ▫ koch :tamanho/3 :geração-1 • fim • Uso: ld un pf 200 ul repita 3 [pd 120 koch 300 5] Linguagem Logo Linguagem Scratch • Software de programação em blocos visual freeware, desenvolvido no MIT para o ensino de programação de crianças ou iniciantes.