Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
CONCEITOS BÁSICOS DE PROGRAMAÇÃO A arte de programar - a organização do pensamento Lógica de programação - tipos de linguagens de programação Conceito de algoritmo ESTRUTURA DE CONTROLE Sequência, seleção, repetição Representação de algoritmos Instruções Primitivas TIPOS DE DADOS Tipos de dados Funções - simples e para tratamento de String Repetição com variável de controle OPERADORES - TÉCNICAS DE PROGRAMAÇÃO Expressões Literais, Relacionais e Lógicas Modularização Recursividade TEMAS AULA - 01 BITS & BYTES APRENDER A PENSAR ! • Todo ser humano pensa. Mas nem sempre o faz de maneira reflexa. • O pensar espontâneo fixa-se no objeto pensado. Termina praticamente aí seu processo de conhecimento! • Interessa-nos aqui “aprender a pensar”. • Isso significa passar de um nível espontâneo, primeiro e imediato a um nível reflexo! DADO INFORMAÇÃO CONHECIMENTO ! ALGUMAS REFLEXÕES SOBRE EDUCAÇÃO ! Curiosamente não ensinamos nossos jovens a pensar. Gastamos horas e horas ensinando como os outros pensam ou como os outros solucionaram os problemas de sua época, mas não ensinamos nossos filhos a resolver os próprios problemas. STEPHEN CHARLES KANITZ • Nossos alunos, na maioria, estão desmotivados e cheios das aulas! • Alguns professores adoram ser o centro das atenções! • Muitos estão infelizes com sua posição de ator obrigado a entreter por cinquenta minutos um bando de desatentos (????). • Não é por coincidência que somos uma nação facilmente controlada por políticos mentirosos e intelectuais espertos. • Nossos diretores valorizam a autoridade, não o indivíduo. STEPHEN CHARLES KANITZ • Nossas salas de aula geram alunos intelectualmente passivos, e não líderes; puxa sacos, e não colaboradores. • Elas incentivam a ouvir e obedecer, a DECORAR, e jamais a ser criativo. STEPHEN CHARLES KANITZ • Em outros países a sala de aula é construída como anfiteatro, onde os alunos ficam num plano ACIMA do professor, não ABAIXO ! GRÉCIA ! • O objetivo não é a transmissão de conhecimento por parte do professor, esta é a função dos livros, não das aulas. • As aulas são para exercitar nossa CAPACIDADE DE RACIOCÍNIO, de convencer nossos colegas de forma clara e concisa, indo direto ao ponto. • Aprendíamos a ser OBJETIVOS, a mostrar liderança, a resolver conflitos de opinião, a chegar a um comum acordo e obter AÇÃO CONSTRUTIVA. • No Brasil só se fica na teoria! STEPHEN CHARLES KANITZ No mundo moderno, em constante mutação, Inteligência significa enxergar o que os outros (ainda) não veem! Isso é próprio de pessoas criativas, pesquisadoras, curiosas, exploradoras, que encontram soluções para os novos problemas INOVAÇÃO ! STEPHEN CHARLES KANITZ Talento é acertar um alvo que ninguém acerta! Genialidade é acertar um alvo que ninguém vê... Arthur Schopenhauer Gdańsk-Prússia (1788) - Frankfurt-Alemanha (1860) As pessoas comuns pensam apenas como passar o tempo. Uma pessoa inteligente tenta usar o tempo. Quanto menos inteligente é um homem, menos misteriosa lhe parece a existência. Não devemos mostrar a nossa cólera ou o nosso ódio senão por meio de atos. Os animais de sangue frio são os únicos que têm veneno. Importante não é ver o que ninguém nunca viu, mas sim, pensar o que ninguém nunca pensou sobre algo que todo mundo vê. Arthur Schopenhauer Gdańsk-Prússia (1788) Frankfurt-Alemanha (1860) • O nosso ensino de FÍSICA e QUÍMICA é MUITO SUPERIOR ao americano. • Mesmo assim, o Brasil produz MENOS FÍSICOS E QUÍMICOS que os Estados Unidos. • Damos MUITA TEORIA e INFORMAÇÃO, mas ENSINAMOS POUCO como USAR as informações aprendidas. • Os americanos sabem e aprendem muito menos teoria, mas DEVOTAM MAIS TEMPO aprendendo como USAR A INFORMAÇÃO apresentada, sob todos os ângulos. STEPHEN CHARLES KANITZ OBSERVAR E PENSAR • O primeiro passo para APRENDER A PENSAR é APRENDER A OBSERVAR! • Só que isso, infelizmente, não é ensinado. • Incentivaria os alunos a estudar menos e a observar mais, e de forma correta. STEPHEN CHARLES KANITZ O QUE DIZEM OS EDUCADORES ? VYGOTSKY a aprendizagem e o ensino são formas universais de desenvolvimento MENTAL. Lev Semenovitch Vygotsky ORSHA 1896 - MOSCOU 1934 Ensino propicia a apropriação da cultura e o DESENVOLVIMENTO do PENSAMENTO, dois processos articulados entre si, formando uma unidade. a) enquanto o aluno forma conceitos científicos, incorpora PROCESSOS de PENSAMENTO e vice-versa; b) enquanto forma o PENSAMENTO teórico, desenvolve AÇÕES MENTAIS, mediante a solução de problemas que suscitam a atividade mental do aluno. Com isso assimila o conhecimento teórico e as capacidades e habilidades relacionadas a esse conhecimento. Lev Semenovitch Vygotsky ORSHA 1896 - MOSCOU 1934 EM QUE MOMENTO DAS NOSSAS VIDAS ISSO ACONTECE ? OU DEVERIA TER ACONTECIDO? Daria tudo que sei, pela metade do que ignoro. RENÉ DESCARTES (La Haye en Touraine - 1596/Estocolmo-1650 Trocaria toda minha tecnologia por uma tarde com Sócrates. STEVEN SCHIBLE JANDALI San Francisco Califórnia - 1955 Palo Alto Califórnia - 2011 O QUE REPOUSA SUBJACENTE A ESSES PENSAMENTOS? O DESEJO DE SABER.... O DESEJO DE APRENDER.... Programar... Programar é a arte de organizar e dominar a complexidade. Edsger Wybe Dijkstra Roterdã - 1930 / Nuemen - 2002 A ARTE DE PROGRAMAR PROGRAMAR É UMA ARTE? PROGRAMAR É PENSAR DE MANEIRA ORDENADA E LOGICAMENTE COERENTE! Ensinar programação nas escolas! Bill Gates Steve Jobs Jack Dorsey Drew Houston ................. PROGRAMAR É PENSAR DE MANEIRA ORDENADA E LOGICAMENTE COERENTE! Duas palavras - pensar e lógica ! O QUE É LÓGICA ? LÓGICA é o estudo filosófico do raciocínio válido. Utilizada em atividades mais intelectuais, a lógica é usada principalmente nas disciplinas de filosofia, matemática, semântica e CIÊNCIA DA COMPUTAÇÃO. FORMAL DE ARGUMENTAÇÃO DO DIREITO MATEMÁTICA DE PROGRAMAÇÃO FUZZY ...... LÓGICA LÓGICA FORMAL também chamada de LÓGICA SIMBÓLICA, preocupa-se, basicamente, com a ESTRUTURA DO RACIOCÍNIO. LÓGICA MATEMÁTICA é uma sub-área da matemática que explora as aplicações da lógica formal para a MATEMÁTICA. LÓGICA DE PROGRAMAÇÃO é a técnica de desenvolver ALGORITMOS (sequências lógicas) para atingir determinados objetivos. Utiliza regras baseadas na Lógica Matemática e em outras teorias básicas da CIÊNCIA DA COMPUTAÇÃO. Os ALGORITMOS são depois adaptados para a LINGUAGEM DE PROGRAMAÇÃO utilizada pelo programador para construir seu SOFTWARE. O conceito de um ALGORITMO foi formalizado em 1936 pela Máquina de Turing de ALAN TURING e pelo Cálculo Lambda de Alonzo Church, que formaram as primeiras fundações da Ciência da Computação. Alan Mathison Turing Londres-1912/Wilmslow-1954 ENIGMA !!!! JOGO DA IMITAÇÃO Arthur Scherbius - 1918 https://www.google.com.br/imgres?imgurl&imgrefurl=http://www.ucalgary.ca/turing/node/15&h=0&w=0&tbnid=PmE07K930At08M&zoom=1&tbnh=219&tbnw=230&docid=CcW8ID9CHciWbM&tbm=isch&ei=yzlwU-e2BcjRsAS45YCYCw&ved=0CAUQsCUoAQ Um PROGRAMA de computador é ESSENCIALMENTE um ALGORITMO que DIZ AO COMPUTADOR os PASSOS específicos e em que ORDEM eles devem ser executados. Logo, o ALGORITMO pode ser considerado uma SEQUÊNCIA DE OPERAÇÕES que podem ser simuladas por uma máquina de Turing completa. ALGORITMO PROGRAMA SOFTWARE ALGORITMO FLUTUA ACIMA DO BEM E DO MAL !!!! LINGUAGEM DE PROGRAMAÇÃO SOFTWARE BÁSICO APLICATIVO é um produto desenvolvido para auxiliar o usuário final nas mais variadas tarefas. Exemplos Processador de Texto, Planilha Eletrônica Softwares de Apresentação, SGBD’s, Navegadores, Mídias Socias, Mensagens,........etc. SOFTWARE BÁSICO APLICATIVO SISTEMAS OPERACIONAIS LINGUAGENS DE PROGRAMAÇÃO SISTEMA OPERACIONAL é o conjunto de programas indispensáveis para o funcionamento de qualquer computador. Controla o Hardware, gerenciando o fluxo de dados na máquina (entrada, saída), o uso da memória, etc. Funciona como um intermediário entre o usuário e o equipamento. Exemplos MS-DOS, MAC-OS, OS2, WINDOWS, LINUX, UNIX, SOLARIS, MAC-APPLE, CHROME-OS, ANDRIOD, iOS, VM, MVS, .... ???? USUÁRIO COMPUTADOR HARDWARE SISTEMA OPERACIONAL • MSDOS • WINDOWS • LINUX • MAC-OS • ANDROID • iOS • .............. USUÁRIO - SISTEMA OPERACIONAL - MÁQUINA http://www.google.com.br/url?sa=i&rct=j&q=&esrc=s&frm=1&source=images&cd=&cad=rja&docid=jXOv0jE8aFh6xM&tbnid=BipiGyz1QDMJ9M:&ved=0CAUQjRw&url=http://pt.all-free-download.com/vector-livre/vector-clip-art/rosto_triste_tango_115987.html&ei=fSntUdXtB4bm9gSz04CQBg&bvm=bv.49478099,d.eWU&psig=AFQjCNGWpIpmPowZMYwjKBA3kB_IRrvslQ&ust=1374583508229896 USUÁRIO HARDWARE SISTEMA OPERACIONAL SHELL KERNEL SHELL é o elo entre o usuário e o Sistema Operacional, funcionando como intérprete entre os dois. KERNEL é o NÚCLEO do Sistema Operacional. Representa a camada mais baixa de interface com o hardware. USUÁRIO - SISTEMA OPERACIONAL - MÁQUINA LEIA; GRAVE; CALCULE; IMPRIMA; EXIBA; ACESSE; LINGUAGEM DE PROGRAMAÇÃO USUÁRIO DESENVOLVEDOR (PROGRAMADOR) UMA PESSOA FELIZ ! http://www.google.com.br/url?sa=i&source=images&cd=&cad=rja&uact=8&docid=ZTRlky3K5cvJpM&tbnid=Qw9BVCr1Eg47oM:&ved=0CAgQjRw4xQE&url=http://blogs.msdn.com/b/wcamb/archive/2009/01/07/azure-services-platform-falando-sobre-o-sistema-operacional-windows-azure.aspx&ei=AAYlU4qhIZKpkAegvoGIBw&psig=AFQjCNHn8E8OaCGsShztKFEAoKlL3qIb8Q&ust=1395021696631830 https://www.google.com.br/imgres?imgurl&imgrefurl=http://maonarodablog.com.br/page/6/?s=cama&h=0&w=0&tbnid=kAcml0c7a62bBM&tbnh=226&tbnw=222&zoom=1&docid=YO9tx-DP0_g_HM&ei=gAclU5e3Lo7QkQfkg4HoAQ LINGUAGEM DE PROGRAMAÇÃO é uma notação com a qual podemos escrever programas capazes de serem processados por um computador. A Linguagem de Programação funciona como um elo entre o homem e a máquina. As Linguagens de Programação podem ser de Baixo Nível ou de Alto Nível. PROGRAMAÇÃO é o ato de definir, escrever e testar instruções para comunicar ao computador um conjunto de operações que deverão ser executadas. LINGUAGEM DE BAIXO NÍVEL uma linguagem de programação é de mais baixo nível na medida que se aproxima da linguagem da máquina. Exemplo: Assembly (Assembler - montador). LINGUAGEM DE ALTO NÍVEL uma linguagem de programação é de mais alto nível na medida que se aproxima da linguagem do homem. Exemplos: Fortran, C, C++, Cobol, Visual Basic, Delphi, JAVA, ASP, PHP, PERL, Natural, AJAX, Ruby on Rails, Python Java Script,... AS LINGUAGENS DE PROGRAMAÇÃO PODEM SER COMPILADAS OU INTERPRETADAS ! ASSEMBLY 1 clear: 2 PUSH AF 3 PUSH BC 4 PUSH DE 5 PUSH HL 6 7 LD HL, 4000H 8 LD DE, 4001H 9 LD BC, 6143 10 11 XOR A,A 12 LD (HL), A 13 14 LDIR 15 16 POP HL 17 POP DE 18 POP BC 19 POP AF 20 RET SELECT Vendedor, Mês, AVG (Venda) FROM Tab_Vendas WHERE Mês = ’05’ GROUP BY Vendedor SQL IF (N Mod 2 = 0) Then Writeln('O número é par ') Else Writeln('O número é ímpar'); DELPHI COMPILADOR é um programa que traduz o programa feito em uma linguagem de programação (programa fonte) para a linguagem de máquina (aquela que o computador entende e é capaz de executar). Cada linguagem de programação tem o seu compilador próprio. Exemplo de programa fonte: readln(x,y); z:= x + y; writeln(x,y,z); O computador não entende esse código. Ele precisa ser traduzido em linguagem de máquina ! QUEM FAZ ESSA TRADUÇÃO É O COMPILADOR ! O PROCESSO DE COMPILAÇÃO PROGRAMA FONTE COMPILADOR PROGRAMA OBJETO LINK EDITOR PROGRAMA EXECUTÁVEL ERROS DE SINTAXE ERROS DE LÓGICA PROGRAMA FONTE programa escrito pelo programador em uma linguagem de programação. PROGRAMA OBJETO é o programa fonte traduzido para a linguagem de máquina. PROGRAMA EXECUTÁVEL é programa objeto que passou pela fase de link-edição, ou seja, foram acrescentadas a ele algumas rotinas já em linguagem de máquina. LIGADORE S SOFTWARE PROPRIETÁRIO SOFTWARE LIVRE (EXECUTÁVEL .EXE) (FONTE) No processo de compilação são identificados apenas os erros de SINTAXE do programa Fonte, os erros de LÓGICA só podem ser detectados durante a execução do mesmo. Cada linguagem de programação possui o seu compilador para uma plataforma específica (sistema operacional). Assim, existe o compilador Fortran para micros da linha IBM/PC com Windows e o compilador Fortran para mainframe (grande porte). O PROCESSO DE COMPILAÇÃO INTERPRETADOR é um programa que traduz o programa feito em uma linguagem de programação para a linguagem de máquina, instrução a instrução. Exemplo de linguagens de programação interpretadas: Basic, Logo, Lisp, HTML, Java Script, ASP,... O PROCESSO DE INTERPRETAÇÃO NÃO GERA UM EXECUTÁVEL ! PROGRAMA FONTE INTERPRETADOR EXECUTA O COMANDO ! Read (x); Read (y); Pensar - o que é pensar ? A Matemática e a Lógica ensinam a pensar! Algoritmos não pode resgatar toda uma vida! Algoritmos pode estimular esse resgate! Alguns sabem programar, mas poucos serão grandes programadores! Precisa ter aptidão - ser begabt! Como resgatar essa deficiência em pouco tempo! Enorme desafio! Existe alguma uma técnica experimental? Cognitiva???? Que tipo de exercício precisamos fazer! A ARTE DE PROGRAMAR PROGRAMAR É UMA ARTE? PROGRAMAR É PENSAR DE MANEIRA ORDENADA E LOGICAMENTE COERENTE! Um programa é uma sequência de instruções que informa ao computador sobre uma tarefa específica que se quer concretizar. A esse conjunto de instruções dá-se o nome de LINGUAGEM DE PROGRAMAÇÃO. ALGORITMO PROGRAMA SOFTWARE ALGORITMO FLUTUA ACIMA DO BEM E DO MAL !!!! CONJUNTO DE INSTRUÇÕES ESCRITAS EM UMA LINGUAGEM DE PROGRAMAÇÃO! EXISTEM MILHARES... REGRA DE NEGÓCIO ! ALGORITMO PROGRAMA SOFTWARE SOFTWAREPROGRAMAALGORITMO NO COMPUTADOR A QUESTÃO DE ORDEM É FUNDAMENTAL ! O COMPUTADOR NÃO É UMA MÁQUINA CAÓTICA ! ALGORITMO É O CORAÇÃO DA COMPUTAÇÃO ! ALGORITMO INDEPENDE DA EXISTÊNCIA DO COMPUTADOR ! ALGORITMOS FLUTUA ACIMA DO BEM E DO MAL ! Jayme Luiz Szwarcfiter UMA SEQUÊNCIA ORDENADA, FINITA E NÃO AMBÍGUA DE ETAPAS QUE CONDUZEM À SOLUÇÃO DE UM PROBLEMA. O CONCEITO DE ALGORITMO ALGORITMO PROCESSO, ROTINA, PROCEDIMENTO... QUALQUER CONTEXTO ! NÃO AMBÍGUA PRINCÍPIOS • TERCEIRO EXCLUÍDO! • NÃO CONTRADIÇÃO! QUALQUER CONTEXTO ! Misture os ingredientes. Unte o tabuleiro com manteiga. Despeje a mistura no tabuleiro. Se (há queijo parmezon) Então. Espalhe sobre a mistura. Leve o tabuleiro no forno. Enquanto (não corar). Deixe o tabuleiro no forno. Deixe esfriar. Experimente antes de servir. CONTEXTO CULINÁRIO Qual a idéia aqui ? Qual a idéia aqui ? Qual a idéia aqui ? QUALQUER CONTEXTO ! Armazene os graus do aluno. Calcule a média destes graus. Se (média é superior a 7) Então Exibe mensagem “Aprovado” Senão Exibe mensagem “Reprovado” CONTEXTO COMPUTACIONAL ! Qual a ideia aqui ? Qual a ideia aqui ? QUALQUER CONTEXTO ! Verifique preenchimento do formulário. Se (preenchimento correto) Então Arquive o documento. Forneça protocolo. Senão Lamente. Torne a lamentar. Mande o cliente comprar outro formulário. Despeça-se educadamente do cliente. CONTEXTO ADMINISTRATIVO E aqui ? • Em cada contexto considerado, o conjunto das INSTRUÇÕES PRIMITIVAS é o ponto de partida para a criação de processos de COMPLEXIDADE CRESCENTE. • Entretanto, a forma de AGREGAÇÃO das instruções são aspectos pertinentes a qualquer processo, INDEPENDENDO, portanto, do contexto a que se referem. • Estes mecanismos de agregação dizem respeito às ESTRUTURAS LÓGICAS que regulam a forma de como a execução de um processo se articula com as instruções primitivas que o compõem. OBSERVAÇÕES Carpe Diem