Disciplina: Introdução a Programação. IPRJ/UERJ Professora...
Transcript of Disciplina: Introdução a Programação. IPRJ/UERJ Professora...
1
Disciplina: Introdução a Programação.
IPRJ/UERJ Professora: Sílvia Mara da Costa Campos Victer
Índice:
Aula1 - Introdução
Programa Algoritmo
Aula 2 - Variáveis
Tipos de dados Identificadores
Aula 3 - Programação Estruturada
Estrutura Sequencial em algoritmos
- Declaração de variáveis - Comando de atribuição
- Comando de entrada - Comando de saída
Estrutura Sequencial em C/C++ - Declaração de variáveis
- Comando de atribuição - Comando de entrada
- Comando de saída - Comentário
Aula 4 - Operadores em C/C++
Aula 5 - Funções pré-definidas em C/C++
Palavras reservadas em C/C++
2
Aula 1: Introdução
Computador digital:
Dispositivo eletrônico que recebe, manipula e armazena informações
(dados). Processa vários tipos diferentes de dados: dados numéricos, caracteres (nomes,
endereços,...), gráficos (tabelas, desenhos,...) e som. Aplicações técnicas e científicas preocupam-se fundamentalmente com dados numéricos, enquanto aplicações
comerciais normalmente envolvem processamento tanto numérico como de caractere. Possui duas partes diferentes que trabalham juntas: o hardware (partes físicas) e o
software (programas).
Programa: --> Conjunto de instruções que descrevem uma tarefa a ser realizada por um
computador, escritas numa linguagem precisa chamada linguagem de programação.
Estas instruções são traduzidas em um compilador, para uma linguagem de baixo nível, a linguagem de máquina, para que o computador possa entender.
As linguagens de programação servem para escrever programas que permitem a
comunicação entre usuário e máquina.
Um programa armazenado na memória pode ser executado a qualquer momento.
A execução de um programa produz os seguintes efeitos:
1. Um conjunto de informações, denominados dados de entrada, será inserido no
computador (através de teclado, pen drive, etc..) e armazenado em uma parte da memória do computador.
2. Os dados de entrada serão, então, processados para produzir os resultados
desejados, conhecidos como dados de saída.
3. Os dados de saída, e talvez alguns dos dados de entrada, serão impressos em
papel ou mostrados na tela do vídeo, ou ainda armazenados em arquivos.
Os dados de entrada são convertidos em informação significativa:
DADOS: valores brutos e números
INFORMAÇÃO: dados processados
Exemplo: Um computador foi programado para calcular a área de um círculo utilizando a fórmula πr2, o valor numérico do raio r é o dado de entrada. Os
seguintes passos serão executados:
3
1. Ler o valor numérico do raio do círculo.
2. Calcular o valor da área, utilizando a fórmula acima. Esse valor será armazenado, juntamente com o dado de entrada, na memória.
3. Imprimir (ou mostrar na tela) o valor do raio e a área correspondente.
Cada um desses passos exigirá uma ou mais instruções de um programa.
Etapas para o desenvolvimento de um programa:
Análise – nesta etapa estuda-se o enunciado do problema para definir os dados de
entrada, o processamento e os dados de saída.
Algoritmo – ferramenta do tipo descrição narrativa, fluxograma ou português
estruturado (pseudocódigo) (são usados para descrever o problema com suas
soluções.)
Codificação – O algoritmo é transformado em códigos da linguagem de programação
escolhida para se trabalhar.
Portanto, um programa é a codificação de um algoritmo em uma linguagem de
programação.
Algoritmo:
Processo sistemático para a resolução de um problema. Significa descrever, de forma lógica, os passos a serem executados no cumprimento de determinada tarefa.
Um algoritmo correto deve possuir 3 qualidades:
1- Cada passo no algoritmo deve ser uma instrução que possa ser realizada. 2- A ordem dos passos deve ser precisamente determinada.
3- O algoritmo deve ter fim.
Exemplo de um procedimento que não é um algoritmo:
Procedimento para contar:
Passo 1: Faça N igual a zero
Passo 2: Some 1 a N. Passo 3: Volte ao passo 2
Não satisfaz a condição 3 de um algoritmo correto!!!
Exemplo de um algoritmo correto:
Procedimento para contar até 100:
Passo 1: Faça N igual a zero
4
Passo 2: Some 1 a N.
Passo 3: Se N é menor que 100, volte ao Passo 2, senão pare.
Satisfaz as três condições!!!
Outros exemplos:
Algoritmo 1: Somar três números
PASSO 1 - Receber os três números
PASSO 2 - Somar os três números
PASSO 3 - Mostrar o resultado obtido
Algoritmo 2: Sacar dinheiro no Banco 24 horas
OBS: um mesmo problema pode ser resolvido de diversas maneiras e gerar a mesma resposta, ou seja, podem existir vários algoritmos para solucionar o mesmo
problema!!
Tipos de algoritmos (os mais usados):
1- Descrição narrativa: consiste em analisar o enunciado do problema e escrever
utilizando uma linguagem natural (ex: a língua portuguesa), os passos a serem seguidos para a sua resolução.
2- Fluxograma: utiliza símbolos gráficos pré-definidos. Principais símbolos:
5
3- Pseudocódigo (pseudolinguagem): utiliza regras pré-definidas que facilitam a passagem do algoritmo para qualquer linguagem de programação.
Na definição de uma linguagem, precisamos fixar: sua sintaxe: como escrever os comandos e seus componentes (tipos, variáveis, etc) e a sua semântica: o
significado de cada comando e conceito.
Exemplos de algoritmos com os três tipos citados acima:
Exemplo1:
Faça um algoritmo para mostrar o resultado da multiplicação de dois números:
1- Algoritmo em descrição narrativa:
PASSO 1 – Receber os dois números que serão multiplicados.
PASSO 2 – Multiplicar os dois números. PASSO 3 – Mostrar o resultado obtido na multiplicação.
2- Algoritmo em fluxograma:
6
3- Algoritmo em pseudocódigo:
Exemplo2: Faça um algoritmo para mostrar o resultado da divisão de dois números.
1- Algoritmo em descrição narrativa:
PASSO 1- Receber os dois números que serão divididos PASSO 2- Se o segundo número foi igual a zero, não poderá ser feita a divisão,
pois não existe divisão por zero; caso contrário, dividir os números e mostrar o resultado da divisão.
2- Algoritmo em fluxograma
7
3- Algoritmo em pseudocódigo
Exemplo 3: Faça um algoritmo para calcular a média aritmética entre duas notas de
um aluno e mostrar a sua situação, que pode ser aprovado ou reprovado.
1- Algoritmo em descrição narrativa:
PASSO 1 - Receber as duas notas
PASSO 2 - Calcular a média aritmética.
PASSO 3 - Mostrar a média aritmética.
PASSO 4 - Se a média aritmética for maior ou igual a 7, então a situação do aluno é aprovado; caso contrário, a situação é reprovado.
2- Algoritmo em fluxograma:
8
3- Algoritmo em pseudocódigo
9
Aula 2: Variáveis e Tipos de dados
Um algoritmo e, posteriormente, um programa, recebem dados, que precisam ser
armazenados no computador para serem utilizados no processamento. Esse armazenamento é feito na memória.
Todos os computadores trabalham com sistema numérico binário: os dados são
transformados em 0 e 1 ('zeros' e 'uns') para, então serem armazenados na memória. Cada dígito binário (0 ou 1) ocupa porções de memória chamadas bytes (8
bits), e cada byte é identificado e acessado por meio de um endereço.
Todos os caracteres existentes possuem um correspondente numérico na tabela ASCII, que é transformado em caractere binário pelo método da divisão para, então,
ser armazenado na memória.
Variável:
- representa uma posição de memória. - possui nome e tipo.
- o conteúdo pode variar ao longo do tempo, durante a execução de um programa. - pode assumir valores diferentes, mas só pode armazenar um valor a cada
instante.
10
Tipos de Dados
1- Dados numéricos: podem ser números inteiros ou reais.
Números inteiros:
- podem ser positivos ou negativos e não possuem parte fracionária!!
Exemplos de dados numéricos inteiros:
-23, 34, 199, 0, 28, 100
Números reais:
- podem ser positivos ou negativos e possuem parte fracionária!!
Exemplos de dados numéricos reais:
-23.0 , 34.0, 199.2 , 0.0 , 28.5 , 100.2
2- Dados Lógicos
Também chamados de dados booleanos e podem assumir valores verdadeiro ou falso.
3- Dados Literais ou caracteres
Formados por um único caractere ou por uma cadeia de caracteres.
Esses caracteres podem ser as letras maiúsculas, as letras minúsculas, os números
(não podem ser usados para cálculo) e os caracteres especiais (&,#,@,?,+).
Exemplos de dados literais: 'aluno', '1234', '@ internet', '100 + 150', '10.6'
11
Identificadores:
Nomes escolhidos para rotular os nomes das variáveis, dos programas, das
constantes, procedimentos, funções, etc.
Regras: O primeiro caractere deve ser sempre uma letra ou o caractere sublinhado (_).
Os demais caracteres podem ser: números, letras maiúsculas, letras minúsculas e o caractere sublinhado.
Os nomes escolhidos devem explicitar seu conteúdo. Não podem ser usadas palavras reservadas, ou seja, palavras que pertençam a
uma linguagem de programação. Não são permitidos espaços em branco e caracteres especiais (@, $, + , - , %,
!).
Exemplos de identificadores válidos:
A, idade, Dia, nota1, media_total
Exemplos de identificadores inválidos: 8ab - começa com um número,
e 12 - contém espaço em branco, nota(10) - contém caracteres especiais ()
SET - palavra reservada, case - palavra reservada,
x+y - contém caractere especial
12
Aula 3- Programação estruturada
Qualquer problema pode ser resolvido utilizando três estruturas: sequencial,
condicional e iterativa (repetição). Procura encontrar uma forma de quebrar um
problema complexo em partes mais simples que, trabalhadas conjuntamente,
permitem solucioná-lo.
A ideia é que, utilizando corretamente tais estruturas, o recurso da modularização e a
parametrização, seja possível criar programas com menor repetição possível de
linhas de comando.
O programador que utiliza o paradigma estruturado analisa o problema tentando
relacionar as ações que deverão ser executadas e como poderão ser divididas em
módulos.
Estrutura Sequencial em algoritmos
Declaração de variáveis em algoritmos:
ocorre após a palavra DECLARE e os tipos mais usados são: NUMÉRICO (para
variáveis que receberão números, LITERAL (para variáveis que receberão caracteres)
e LÓGICO (para variáveis que receberão apenas dois valores: verdadeiro ou falso).
Exemplo:
Comando de atribuição em algoritmos:
para conceder valores ou operações a variáveis (símbolo ). Exemplo:
13
Comando de entrada em algoritmos:
Usado para receber dados digitados pelo usuário, que serão armazenados em
variáveis. Representado pela palavra LEIA.
Exemplo:
LEIA X
- um valor digitado pelo usuário será armazenado na variável X.
LEIA Y
- um ou vários caracteres digitados pelo usuário serão armazenados na variável Y.
Comando de saída em algoritmos:
Usado para mostrar dados na tela ou na impressora. Representado pelo palavra
ESCREVA. Os dados podem ser conteúdos de variáveis ou mensagens.
Exemplo:
ESCREVA X
Mostra o valor armazenado na variável X
ESCREVA "Conteúdo de Y = ", Y
Mostra a mensagem "Conteúdo de Y =" e em seguida o valor armazenado na variável
Y.
14
Estrutura Sequencial em C/C++
Bibliotecas: arquivos contendo várias funções que podem ser incorporadas aos
programas escritos em C/C++. A diretiva #include faz com que o texto contido na
biblioteca especificada seja inserida no programa.
Exemplo: as bibliotecas iostream.h e conio.h permitem a utilização de diversos
comandos de entrada e saída.
A linguagem C/C++ é sensível a letras maiúsculas e minúsculas, ou seja, letras
minúsculas são diferentes de minúsculas (por exemplo, b é diferente de B). TODOS
os comandos devem, obrigatoriamente, ser escritos com letras minúsculas.
Declaração de variáveis em C/C++
As variáveis são declaradas após a especificação de seus tipos.
Tipos de dados mais usados:
int (para números inteiros);
float (para números reais);
char (para um caractere)
Não possui tipo de dados boolean (que pode assumir os valores verdadeiro ou falso),
pois considera verdadeiro qualquer valor diferente de 0 (zero).
Não possui um tipo especial para armazenar cadeias de caracteres (strings). Deve-
se utilizar um vetor contendo vários elementos do tipo char.
Exemplo:
float X;
- declara uma variável chamada X em que pode ser armazenado um número real.
float X,Y;
- declara duas variáveis X e Y em que podem ser armazenados dois números reais.
char opcao;
- declara uma variável chamada opcao em que pode ser armazenado um caractere.
char nome[50];
15
- declara uma variável chamada nome em que podem ser armazenados até 50
caracteres.
Tipos de dados:
Obs: de acordo com o processador ou compilador C/C++ utilizado, o tamanho e a
faixa de valores podem variar.
Comando de atribuição em C/C++
Utilizado para conceder valores ou operações a variáveis. Representado por = (sinal
de igualdade). Exemplo:
Os caracteres são representados entre apóstrofos ( ' ).
As cadeias de caracteres são representadas entre aspas ( " ).
Para armazenar uma cadeia de caracteres dentro de uma variável, deve-se
utilizar uma função para manipulação de caracteres:
Para que seja possível a utilização da função strcpy deve-se inserir no programa, por
meio da diretiva include, a biblioteca string.h.
Todo comando deve ser finalizado com o sinal de ponto e vírgula (;)
16
Comando de entrada em C/C++
Usado para receber dados digitados pelo usuário.
Os dados recebidos são armazenados em variáveis. Exemplos:
Comando Definição
cin >> x;
Um valor digitado pelo usuário será
armazenado na variável x.
gets(nome); Um ou mais caracteres digitados pelo
usuário serão armazenados na variável nome.
scanf("%d",&x); Um valor digitado pelo usuário será
armazenado na variável x.
O comando gets deve ser usado quando se deseja digitar uma cadeia contendo
espaços em branco. Ex: Maria Jose.
O comando cin consegue armazenar os caracteres até que seja encontrado o primeiro
espaço em branco (os caracteres posteriores são descartados). Ex: Maria.
Os comandos gets e scanf: armazenam toda a cadeia até que seja pressionada a
tecla ENTER. (Necessário incluir a biblioteca stdio.h, ou seja, #include <stdio.h>)
Comando de Saída em C/C++
Usados para mostrar dados na tela ou na impressora. Exemplo:
Comando Definição
cout << x; Mostra o valor armazenado na variável x.
cout << "Conteudo de x = ", << x; Mostra a mensagem "Conteudo de X= " e em seguida o valor armazenado na variável
x.
printf ("%d",y); Mostra o número inteiro armazenado na variável y.
printf ("%Conteudo de y = %d",y); Mostra a mensagem "Conteudo de y= " e em seguida o número inteiro armazenado na
variável y.
printf ("%f",x); Mostra o número real armazenado na variável x.
printf("%5.2f", x); Mostra o número real na variável x utilizando cinco casas para a parte inteira e
duas casas decimais.
17
No comando printf é necessário indicar o tipo de variável que será mostrada:
%f: para variáveis que armazenam números reais;
%d: para variáveis que armazenam números inteiros:
%c: para variáveis que armazenam um único caractere;
%s: para variáveis que armazenam um conjunto de caracteres.
Comentário em C/C++
Importante para documentação do programa.
Para várias linhas:
/*
linhas de comentário
linhas de comentário
. . .
*/
Para uma linha apenas:
// uma linha de comentário
18
Aula 4: Operadores em C/C++
Operadores
Operador Exemplo Comentário
= x=y O conteúdo da variável y é atribuído à variável x. (A uma variável pode ser atribuído o conteúdo de outra, um valor
constante ou, ainda, o resultado de uma função).
+ x + y Soma o conteúdo de x e de y.
- x - y Subtrai o conteúdo de x e de y.
* x * y Multiplica o conteúdo de x pelo conteúdo de y.
/ x/y Obtém o quociente de divisão de x por y.
% x%y Obtém o resto da divisão de x por y (obs: apenas para
números inteiros)
+= x += y Equivale a x = x + y.
-= x -= y Equivale a x = x - y.
*= x *= y Equivale a x = x * y.
/= x /= y Equivale a x = x / y.
%= x %= y Equivale a x = x % y.
++ x++ Equivale a x = x + 1.
++ y= ++x Equivale a x = x + 1 e depois y=x.
++ y= x++ Equivale a y = x e depois x=x+1.
-- x-- Equivale a x = x - 1.
-- y= --x Equivale a x = x - 1 e depois y=x.
-- y= x-- Equivale a y = x e depois x=x-1.
== x == y O conteúdo de x é igual ao conteúdo de y.
!= x != y O conteúdo de x é diferente do conteúdo de y.
<= x <= y O conteúdo de x é menor ou igual ao conteúdo de y.
>= x >= y O conteúdo de x é maior ou igual ao conteúdo de y.
< x < y O conteúdo de x é menor que o conteúdo de y.
> x > y O conteúdo de x é maior que o conteúdo de y.
19
Aula 5: Funções pré-definidas em C/C++
Funções matemáticas
Exemplos de algumas funções matemáticas da biblioteca math.h:
Função Exemplo O que faz Retorno
Calcula o menor valor inteiro maior que x. Ex: ceil (3.2) é 4.
Retorna o menor inteiro maior que . Embora inteiro, o valor é retornado como double.
Calcula o maior valor inteiro menor que x. Ex: floor (3.2) é 3.
Retorna o maior inteiro menor que . Embora inteiro, o valor é retornado como double.
Calcula o cosseno de ( em radianos).
O cosseno do arco , um valor no intervalo [-1,+1].
Calcula o seno de ( em radianos).
O seno do arco , um valor no intervalo [-1,+1].
Calcula a tangente de ( em radianos).
O valor da tangente do arco x como um número de dupla precisão (double).
calcula o valor absoluto do argumento , onde é um inteiro.
o inteiro que representa o valor absoluto do argumento .
calcula o valor absoluto do argumento , onde é um double.
o double que representa o valor absoluto do argumento .
Obtém o logaritmo natural elevado à potência .
O valor de em precisão dupla.
Obtém o logaritmo natural de (logaritmo neperiano).
O valor de em precisão dupla.
Obtém o logaritmo de base 10 de (logaritmo decimal). o valor de deve ser positivo. Se , então
O valor de em precisão dupla.
calcula a parte fracionária de e coloca a parte inteira em .
retorna o valor da parte fracionária de x em dupla precisão.
calcula a potência . Se ou for 0, o resultado é 0. Se qualquer um dos dois for negativo, pode ocorrer um erro.
o valor de em dupla precisão.
calcula a raiz quadrada de , isto
é
.
o valor da raiz quadrada de em dupla precisão (double).
Constante que define o valor de
O valor de .
20
Exemplo (código em C):
As funções sin, cos e tan esperam receber argumentos no formato de radianos;
para receberem argumentos em graus, siga o exemplo a seguir:
Exemplo com o valor de π:
valorPI = 3.415;
cin >> x; // x em graus
y = sin ((valorPI * x)/180);
21
ou usando a função M_PI:
cin >> x; // x em graus y = sin((M_PI*x)/180);
Palavras reservadas de C/C++
Materiais de referência:
Livros:
1- Fundamentos da Programação. Ascencio, Ana/Campos, Edilene.
http://wps.prenhall.com/br_ascencio_2/77/19865/5085520.cw/index.html
2- C completo e total. Herbert Schildt
3- Programando em C
Schaum McGraw-Hill