Programação de Computadores
Introdução
Programação é o processo de definir, utilizando uma
Linguagem de programação, os comandos e as
instruções que o computador deve executar para realizar determinada tarefa
Conceitos
Linguagem: Um código de comunicação, formado
por um conjunto de símbolos, que possuem regras de sintaxe e semântica.
Linguagem de Programação: Uma notação formal
que tem como objetivo descrever a execução de
algoritmos em computadores. Assim como qualquer linguagem deve seguir regras sintáticas e semânticas.
Conceitos
Programa: Um programa de computador é uma
coleção de instruções que descrevem uma tarefa a ser realizada por um computador.
Pode ser entendido também como a codificação de um algoritmo em uma determinada linguagem de
programação.
Código fonte: É um conjunto de palavras escritas de
forma ordenada composto pelas instruções de uma das linguagens de programação. Como exemplo, temos abaixo um código fonte de um programa em linguagem de programação C.
Conceitos
Compilador: Um compilador é um programa de sistema que
traduz um programa descrito em uma linguagem de alto nível para um programa equivalente em código de máquina para um processador
Análise Léxica: Verifica os símbolos escritos em um programa,
verifica se os caracteres especiais fazem realmente parte do alfabeto daquela linguagem e se o nome das variáveis são válidos.
Análise Sintática (parsing): Refere-se à forma de escrever.
Conjunto de regras, a partir do agrupamento e letras, dígitos e outros caracteres, para escrita de um programa em uma determinada linguagem.
Análise Semântica: Refere-se ao sentido, significado dos
símbolos escritos em uma determinada linguagem. Identifica, por exemplo, a multiplicação entre dois tipos de dados diferentes.
Organização de Computadores
Memória é a parte do computador onde programas e dados
são armazenados
A unidade básica da memória é o bit(“binary digit”) . Sendo
um “pedaço de informação” um bit não tem sentido por si só. Ou seja, apenas conjuntos de bits podem conter
informações úteis.
Um bit contém ou o valor “1” ou “0”, visto que a aritmética
Bits e Bytes
Um byte é um grupo de 8 bits. Ex.: 10000001 (= 129) .
O padrão de fato utilizado atualmente define que um byte é a menor unidade que pode ser endereçada ( identificada
individualmente) na memória.
Uma palavra é um grupo de bytes. P. ex., é comum ter-se palavras de 4 bytes (32 bits). Normalmente, as instruções
operam em palavras inteiras. O tamanho da palavra (numero de bytes ou bits) , normalmente, determina o tamanho ( largura) de registradores,barramentos, etc.
Como escrever um programa
Definição do problema;
Planejamento da solução;
Esboço da solução na forma de um
algoritmo;
verificação do algoritmo experimentalmente
Escrita do algoritmo na linguagem de
programação
compilação
testes
Algoritmos
Definição:
Um algoritmo é uma seqüência finita de instruções ou operações básicas cuja execução, em tempo finito, resolve um problema computacional.
Informalmente, é uma sequência finita de instruções (ou comandos ou ações) utilizadas para resolver um determinado problema.
Algoritmos
Por exemplo, como assistir a um DVD? 1° refinamento: 1. Coloque o DVD no player; 2. Ligue a TV; Comandos 3. Assista ao filme. 2° Refinamento 1. Coloque o DVD no player; 2. Ligue a TV;
3. Regule o volume e a imagem;
Algoritmos
3° Refinamento 1. Tire o DVD da caixa; 2. Coloque o DVD no player; 3. Ligue a TV; 4. Regule o volume e a imagem; 5. Assista ao filme. 6. Regule o volume e a imagem; 7. Assista ao filme. 4° refinamento: 1. Tire o DVD da caixa; 2. Coloque o DVD no player; 3. Ligue a TV; 4. Selecione os parâmetros de5. exibição do filme (áudio,
Algoritmos
Quando parar de “refinar” o algoritmo, ou seja,
quando parar de detalhar os comandos?
Depende de quem vai executar as instruções!
No caso de um computador vai depender da linguagem de programação utilizada, pois o algoritmo vai ser
transformado em um programa.
Um algoritmo deve ser descrito ou detalhado em um nível tal que tenhamos certeza de que suas instruções poderão ser executadas de maneira “fácil”.
Representação de Algoritmos
Fluxograma:
Representação gráfica que indica a seqüência de operações.
Ex.: Ler dois números e calcular a diferença entre o quadrado do maior e o cubo do menor.
Fluxograma
a > b Início Término c = b 2 - a 3 c = a 2 - b 3 S N c a, bRepresentação de Algoritmos
Linguagem Natural (pseudo-código)
início leia a,b se a > b então c a² - b³ senão c b² - a³ escreva c fim
Representação de Algoritmos
Linguagem de Programação – C int main(){ float a,b,c; scanf(“%d”,&a); scanf(“%d”,&b); if(a>b) c = (a*a) + (b*b*b); else c = (b*b) + (a*a*a); cout<<c; }Conceito de Variáveis
Um programa necessita de armazenamento dos
dados recebido para que seja feito um processamento.
Esse armazenamento é feito na memória.
Uma variável representa uma posição de memória,
possuindo nome e tipo, cujo conteúdo pode variar ao longo do tempo, durante a execução do programa.
Embora possa assumir diferentes valores, ela só pode armazenar um valor a cada instante.
Conceito de Variáveis
Regras para utilização/definição:
o nome de uma variável pode ser definido com 1 ou mais caracteres
o primeiro caracter não pode ser número.
não é permitido espaço em branco entre os caracteres.
palavras reservadas não podem ser utilizadas como nome de variáveis.
só pode ser letra, número e _ (underline)
Nomes Válidos Nomes Inválidos
nome_completo nome completo telefone1 1telefone
Tipos de Dados
Inteiros:
São os dados numéricos positivos ou negativos. Excluindo-se destes qualquer número fracionário. Ex.: 35, 0, -56 etc.
Em C : int, long int, sort int
Reais:
São os dados numéricos positivos, negativos e fracionários. Ex.: 35, 0, -56, 1.2, -45.8987 etc.
Tipos de Dados
Caractere:
Conjunto de caracteres que podem conter letras, números e símbolos especiais. Uma seqüência de caracteres deve ser indicada entre aspas (“”). Este tipo de dado é também conhecido como: alfanumérico, string, literal ou cadeia. Ex.: “PROGRAMAÇÃO”, “Rua Alfa, 52 Apto. 1”, “Fone: 574-9988”, “7” etc. Parasomente 1 caracter se utiliza apostrofo ‘’ . EX.: ‘a’,’b’.
Em C: char
Lógico: conjunto de valores verdadeiros ou
falso.
Declaração de Variáveis
Declaração de Variáveis:
as variáveis ao serem declaradas devem ser
associadas a um tipo primitivo de dados (float, inteiro, caracter, lógico)
Exemplos:
int numero1;
float nota1, nota2, media; char nome[20];
Constantes
Constante é tudo aquilo que é fixo ou estável.
No decorrer do processamento tal valor não se altera.
Ex.: PI=3.14159, MAX=45, etc.
Em C: #define PI 3.14159
Operadores aritméticos
Tanto variáveis como constantes poderão ser usadas
na elaboração de cálculos matemáticos (expressões matemáticas): Operação Símbolo Adição + x + y Subtração - x - y Multiplicação * x * y Divisão / x / y Divisão inteira % x % y Potência ^ x ^2 ou x^y Em C: pow(x,2) ou pow(x,y) Incremento ++ x++ (x=x+1) Decremento -- X-- (x=x-1)
Operadores aritméticos
Atribuição: = EX: A = 1; B = 1 + 2; C = A + B;C/C++ breve introdução
A linguagem C foi criada por Dennis Ritchie, em 1972,
no centro de Pesquisas da Bell Laboratories.
Sua primeira utilização importante foi a reescrita do
Sistema Operacional UNIX, que até então era escrito em assembly.
O C é uma linguagem de propósito geral, sendo
adequada à programação estruturada. No entanto é mais utilizada para escrever compiladores,
analisadores léxicos, bancos de dados, editores de texto, etc..
C/C++ breve introdução
A linguagem C pertence a uma família de linguagens
cujas características são:
portabilidade, modularidade, compilação separada, recursos de baixo nível, geração de código eficiente, confiabilidade, regularidade, simplicidade e facilidade de uso.
Visão geral de um programa C
Todo programa C inicia sua execução chamando a
função main(), sendo obrigatória a sua declaração no programa principal.
Comentários no programa são colocados entre /* e */
não sendo considerados na compilação.
Cada instrução encerra com ; (ponto e vírgula) que
Estrutura sequencial em C
#include <biblioteca> //Comentários /* linhas de comentários linhas de comentários */ int main() { Bloco de comandos; }Estrutura sequencial em C
Bibliotecas são arquivos que contem funções que
podem ser incorporadas em programas em C.
A directiva #include faz com que este arquivo seja
incluído ao programa.
As bibliotecas stdio.h e stdlib.h permitem a utilização
de diversos comandos de entrada e saída.
A linguagem C/C++ e sensível a letras minúsculas e
maiúsculas ou seja a e diferente de A sendo assim todos os comandos são escritos em minúsculas.
Exemplo
/* Primeiro Programa */ #include <stdio.h> #include <stdlib.h> int main() { printf("Primeiro Programa\n"); return 0; }Entrada e Saída
Para que um programa interaja com o usuário é
necessário que haja instruções de entrada e saída
Entrada: instruções onde o programa recolhe algo do
usuário, seja pelo teclado, mouse, scanner ou qualquer outro dispositivo de I/O.
Sintaxe:
Leia(<variavel_ou_listaDeVariaveis) Exemplos:
int n;
Função Scanf
A função scanf( ) é uma das funções de entrada de
dados da Linguagem C, que pode ser usada para ler virtualmente qualquer tipo de dado inserido por meio do teclado, freqüentemente ela é usada para a
entrada de números inteiros ou de ponto flutuante.
A forma geral da função scanf( ) é:
Função Scanf
Os especificadores de formato de entrada são precedidos por um sinal % e dizem à função scanf( ) qual tipo de dado deve ser lido em seguida.
Esses códigos são listados na tabela a seguir.
Código Significado
%c Lê um único caractere
%d Lê um decimal inteiro
%i Lê um decimal inteiro (não pode ser octal ou hexadecimal)
%u Lê um decimal sem sinal
%e Lê um número em ponto flutuante com sinal opcional
%f Lê um número em ponto flutuante com ponto opcional
%g Lê um número em ponto flutuante com expoente opcional
(double)
%o Lê um número em base octal
%s Lê uma string
%x Lê um número em base hexadecimal
Entrada e Saída
Saída: instruções que o computador envia ao usuário,
seja pelo monitor ou pela impressora por exemplo.
Sintaxe:
Escreva(variavel_e/ou_mensagem) Exemplos:
int soma=1+3;
Função PRINTF()
Quando é necessário imprimir na tela um dado, um
valor, uma string ou mesmo um endereço de memória, usa-se a função printf().
Quando o programa usa a função printf(), as
informações que instrui printf() a imprimir são
chamadas parâmetros ou argumentos de printf().
A estrutura básica da função printf() é dada a seguir:
printf ("string de controle", lista de argumentos);
A string de controle contém tanto caracteres para serem impressos na tela como códigos de formato que especificam como apresentar o restante dos argumentos.
Função PRINTF()
Quando os programas trabalharem com variáveis,
será possível usar printf() para exibir os valores de cada variável.
A função printf() suporta mais de um parâmetro.
O primeiro parâmetro precisa ser sempre uma string
de caracteres.
Pode-se fazer os parâmetros que seguem a primeira
string de caracteres serem números, expressões, variáveis, ou até outras strings de caracteres.
Quando for necessário que printf() exiba um valor ou
uma variável, é preciso fornecer informações sobre o tipo da variável dentro do primeiro parâmetro.
Função PRINTF()
A seguir, uma tabela com os especificadores de
formato:
Código Significado
%c Exibe um caractere
%d Exibe um inteiro em formato decimal %i Exibe um inteiro
%e Exibe um número em notação científica (com e minúsculo) %E Exibe um número em notação científica (com E maiúsculo)
%f Exibe um ponto flutuante em formato decimal %g Usa %e ou %f, o que for menor
%G O mesmo que %g, só que um E maiúsculo é usado se o formato %e for escolhido
%o Exibe um número em notação octal %s Exibe uma string
%u Exibe um decimal sem sinal
%x Exibe um número em hexadecimal com letras minúsculas %X Exibe um número em hexadecimal com letras maiúsculas %% Exibe um sinal de %
Exemplo
#include <stdio.h> #include <stdlib.h> int main() { int i; printf(“Digite um numero: “); scanf(“%d”,i);printf(“O numero digitado foi: %d”,i); return 0;
}
Exercícios:
1. Leia um valor e exiba a sua metade;
2. Leia quatro valores e exiba a soma destes;