"Algoritmo é um sequência de instruções cuja execução, seguindo
uma ordem definida, resulta numa determinada ação. E a ação é um acontecimento que, a partir de um estado inicial, produz um efeito final previsível, bem definido e intencional, após um período de tempo finito.”
“Processo de cálculo, ou de resolução de um grupo de problemas
semelhantes, em que se estipulam, com generalidades e sem restrições, as regras formais para a obtenção do resultado ou da solução do problema.”
Professor: Edson Pires da Silva folha: 2
• Exemplo de Algoritmo Início
1. Tirar o fone do gancho;
2. Ouvir o sinal de linha;
3. Introduzir o cartão;
4. Teclar o número desejado;
SEQUÊNCIAL
5. Se der o sinal de chamar
DESVIO 5.1 Conversar;
5.2 Desligar;
5.3 Retirar o cartão;
6. Senão
6.1 Repetir;
Fim.
Professor: Edson Pires da Silva folha: 3
• Estruturas básicas de controle • Sequência simples: é a forma mais simples das estruturas de controle. É representada pelo símbolo “ ; ”. Ele tem no texto a função de separar um comando do outro e na interpretação de indicar que os comandos separados deverão ser executados na mesma sequência em que aparecem. Exemplo:
pegar o copo em cima da mesa;
colocá-lo sob a torneira do filtro; abrir a torneira; encher o copo; fechar a torneira; levar o copo com água a quem pediu;
Professor: Edson Pires da Silva folha: 4
• Estruturas básicas de controle • Decisão ou alternativa simples: esta se resume em uma ação a ser executada que dependerá do resultado, falso ou verdadeiro, de uma condição imposta ao problema. A estrutura utilizada é o conectivo condicional “SE”, representando assim: se <condição> então < ação >. Exemplo: pegar o copo em cima da mesa; se < copo estiver sujo > então “lave-o”; colocá-lo sob a torneira do filtro; abrir a torneira; encher o copo; fechar a torneira; levar o copo com água a quem pediu;
Professor: Edson Pires da Silva folha: 5
• Estruturas básicas de controle • Decisão ou alternativa composta: Podemos ter duas ações a executar em função do resultado da condição. Uma para o resultado verdadeiro, outra para o resultado falso. A estrutura ficará da seguinte forma:
se < condição >
então < ação > ( para condição = verdadeiro ) senão < ação > ( para condição = falso )
Professor: Edson Pires da Silva folha: 6
• Estruturas básicas de controle • Repetição: Vamos imaginar que mais de uma pessoa pediu um copo com água. Apesar de serem pessoas diferentes, não justifica narrarmos a mesma sequência de ações para cada pedido. A solução então, é repetirmos a mesma sequência de ações, tantas vezes quanto forem os pedidos. Desta forma enquanto <condição > faça < ação >. Exemplo: enquanto < houver pedido de água > faça pegar o copo em cima da mesa; se < copo estiver sujo > então “lave-o”; colocá-lo sob a torneira do filtro; abrir a torneira; encher o copo; fechar a torneira; levar o copo com água a quem pediu;
Professor: Edson Pires da Silva folha: 7
• Estruturas de Algoritmo - Como dirigir um carro abrir a porta; entrar no carro; fechar a porta; apertar embreagem; colocar ponto morto; soltar embreagem; ligar o carro; enquanto < estiver acelerando > faça {apertar a embreagem; engatar marcha a frente; soltar a embreagem; pisar no acelerador;}
Professor: Edson Pires da Silva folha: 8
• Estruturas de Algoritmo - Como dirigir um carro
enquanto < estiver parando > faça
{apertar a embreagem; engatar marcha a frente; soltar a embreagem; pisar no freio;} apertar a embreagem; pisar no freio até parar; desligar o carro; soltar a embreagem; abrir a porta; sair do carro; fechar a porta; Professor: Edson Pires da Silva folha: 9 • Técnicas atuais de programação • Programação sequêcial: É o tipo de programação onde não nos preocupamos em dividir o programa de uma forma organizada, por ele ser muito pequeno ou por não estarmos ainda familiarizados com outras técnicas mais modernas de programação. • Programação estruturada: É uma metodologia de construção de algoritmo/programas para proporcionar: – maior facilidade de escrita (elaboração) e leitura (compreensão); – permitir a verificação dos programas; – facilitar a manutenção e modificação de programas. • Programação orientada a objetos: Na prática de programação orientada a objetos estaremos atentos em nossos programas para pontos como: – compatibilidade, portabilidade; – segurança; – reusabilidade; – facilidade de integração e extensão; – eficiência.
Professor: Edson Pires da Silva folha: 10
• Linguagens de programação • Definição: Um programa de computador é um conjunto instruções que representam um algoritmo para a resolução de algum problema. Estas instruções são escritas através de um conjunto de códigos (símbolos e palavras). Este conjunto de códigos possui regras de estruturação lógica e sintática própria. Dizemos que este conjunto de símbolos e regras formam uma linguagem de programação.
• Interpretadores são programas que fazem a interpretação de cada
instrução do programa fonte executando-a dentro de um ambiente de programação, Basic e AutoLISP por exemplo.
• Compiladores são programas que fazem a tradução de todas as
instruções do programa fonte gerando um programa executável. Estes programas executáveis (*.exe) podem ser executados fora dos ambientes de programação, C e Pascal por exemplo.
Professor: Edson Pires da Silva folha: 11
• Grupos de Linguagens de programação Grupos: Podemos dividir, genericamente, as linguagens de programação em dois grandes grupos: as linguagens de baixo nível e as de alto nível.
• Linguagens de baixo nível: São linguagens voltadas para a máquina,
isto é, são escritas usando as instruções do microprocessador do computador. São genericamente chamadas de linguagens Assembly.
• Vantagens: Programas são executados com maior velocidade de
processamento. Os programas ocupam menos espaço na memória.
• Desvantagens: Em geral, programas em Assembly tem pouca
portabilidade, isto é, um código gerado para um tipo de processador não serve para outro. Códigos Assembly não são estruturados, tornando a programação mais difícil.
Professor: Edson Pires da Silva folha: 12
• Grupos de Linguagens de programação • Linguagens de alto nível: São linguagens voltadas para o ser humano. Em geral utilizam sintaxe estruturada tornando seu código mais legível. Necessitam de compiladores ou interpretadores para gerar instruções do microprocessador.
• Vantagens: Por serem compiladas ou interpretadas, tem maior
portabilidade podendo ser executados em varias plataformas com pouquíssimas modificações. Em geral, a programação torna-se mais fácil por causa do maior ou menor grau de estruturação de suas linguagens.
• Desvantagens: Em geral, as rotinas geradas (em linguagem de
maquina) são mais genéricas e portanto mais complexas e por isso são mais lentas e ocupam mais memória.
Professor: Edson Pires da Silva folha: 13
• Características da Linguagem C • O C é uma linguagem de alto nível com uma sintaxe bastante estruturada e flexível tornando sua programação bastante simplificada. • Programas em C são compilados, gerando programas executáveis. • O C compartilha recursos tanto de alto quanto de baixo nível, pois permite acesso e programação direta do microprocessador. Com isto, rotinas cuja dependência do tempo é crítica, podem ser facilmente implementadas usando instruções em Assembly. Por esta razão o C é a linguagem preferida dos programadores de aplicativos. • O C é uma linguagem estruturalmente simples e de grande portabilidade. O compilador C gera códigos mais enxutos e velozes do que muitas outras linguagens. • Embora estruturalmente simples (poucas funções intrínsecas) o C não perde funcionalidade pois permite a inclusão de uma farta quantidade de rotinas do usuário. Os fabricantes de compiladores fornecem uma ampla variedade de rotinas pré-compiladas em bibliotecas.
Professor: Edson Pires da Silva folha: 14
• História da Linguagem C/C++ • 1970: Denis Ritchie desenha uma linguagem a partir do BCPL nos laboratórios da Bell Telephones, Inc. Chama a linguagem de B. • 1978: Brian Kerningham junta-se a Ritchie para aprimorar a linguagem. A nova versão chama-se C. Pelas suas características de portabilidade e estruturação já se torna popular entre os programadores. • 1980: A linguagem é padronizada pelo American National Standard Institute: surge o ANSI C. • 1990: A Borland International Co, fabricante de compiladores profissionais escolhe o C e o Pascal como linguagens de trabalho para o seu Integrated Development Enviroment (Ambiente Integrado de Desenvolvimento): surge o Turbo C. • 1992: O C se torna ponto de concordância entre teóricos do desenvolvimento da teoria de Object Oriented Programming (programação orientada a objetos): surge o C++.
Professor: Edson Pires da Silva folha: 15
• Operações Básicas em programação Os programas de computador variam amplamente em termos de propósito, estilo e complexidade. Entretanto, quase todos eles consistem em três fases: – descrição, coleta e armazenamento de informações (dados); – processamento dos dados para atingir o resultado esperado; – mostra e/ou armazenamento dos resultados. Exemplo: #include <stdio.h> float a,b,med; void main ( ){ printf (“Digite dois números:”); scanf (“%f%f”,&a,&b); med=(a+b)/2.0 printf (“\n A média destes números é: %f”,med);}
Professor: Edson Pires da Silva folha: 16
• Constantes em C++ • O C++ tem quatro tipos básicos de constantes: inteiras, de ponto flutuante, caracteres e strings. • Constantes inteiras r de ponto flutuante representam números de um modo geral. • Caracteres e strings representam letras e agrupamentos de letras (palavras) respectivamente. Exemplos: Constantes inteiras são números de valor inteiro. Estes números podem ser escritos no formato decimal (base 10), hexadecimal (base 16) ou octal (base 8). Exemplos: Decimal 0 3 -45 26338 -75891010 Hexadecimal 0x0 0x3 0x4F5A 0xABCD 0xAaFf Octal 00 03 0101 045 07575
Professor: Edson Pires da Silva folha: 17
• Constantes em C++ • Constantes de ponto flutuante são números reais representados em base 10, por números com um ponto decimal e (opcionalmente) um expoente. Exemplo: 314. 3.14e2 +3.14e+2 31.4e1
• Constante de caractere é uma letra ou um símbolo colocado entre