Buscar

Aula 02 - Estruturas de Controle I tipos de dados etc - Comandos de IO atribuição sequência simples e metodologias

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 52 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

DCC 119 Algoritmos
2
Pontos importantes da última aula
Sistemas de Numeração: base, notação
posicional e conversão de base.
Sistemas Computacionais: processador, 
memória, linguagens de programação e sistema 
operacional.
Algoritmos: ação, estado, processo, padrão de 
comportamento, algoritmo, aspectos estático e 
dinâmico de um algoritmo e formas de 
representação de algoritmos.
3
Introdução
Para cada comando serão apresentadas a sua:
sintaxe: formato geral do comando que deve ser 
aceita e respeitada como padrão.
semântica: o significado da ação realizada pelo 
comando, em tempo de execução.
No texto (estático) de um programa (ou algoritmo), 
um valor pode ser representado na forma de 
constante ou de variável.
A constante é representada em um programa 
diretamente pelo seu valor (que não se altera 
durante a execução do programa).
4
Variáveis
A variável é representada no texto de um 
programa por um nome que corresponde a uma 
posição da memória que contém o seu valor.
Em tempo de execução, o nome da variável 
permanece sempre o mesmo e seu valor pode 
ser modificado. 
Nome de variável: é criado pelo programador e 
deve ser iniciado por uma letra que pode ser 
seguida por tantas letras, algarismos ou 
sublinha quanto se desejar e é aconselhável que 
seja significativo do valor que ela representa.
5
Variáveis
Exemplos de nomes de variáveis:
Certo:
nome, telefone, salario_func, x1
Errado:
1ano, sal/hora, _nome
6
Tipos de Dados
Todo valor (constante ou variável) de um 
programa tem um tipo de dados associado.
Um tipo de dados é constituído de dois conjuntos: 
um conjunto de objetos (domínio de dados) e de 
um conjunto de operações aplicáveis aos objetos 
do domínio.
Toda linguagem de programação tem embutido um 
conjunto de tipos de dados, também chamados de 
implícitos, primitivos ou básicos.
Tipos de dados básicos: inteiro, real, caracter e 
lógico.
Em C, os tipos acima são, respectivamente, int, 
float/double e char. Não há o tipo lógico em C.
7
Tipos de Dados Básicos
inteiro:
Domínio: conjunto dos inteiros.
Operações: usam dois argumentos inteiros e, de 
acordo com o resultado são:
+, -, *, div, e mod: resultado inteiro
/: resultado real
<, , =, >, e : resultado lógico
real:
Domínio: conjunto dos reais.
Operações: usam dois argumentos reais e, de 
acordo com o resultado são:
+, -, * e /: resultado real
<, , =, >, e : resultado lógico
8
Tipos de Dados Básicos
caracter:
Domínio: conjunto de caracteres alfanuméricos.
Operações: usam dois argumentos do domínio e 
fornecem resultado lógico: <, , =, >, e 
lógico:
Domínio: {verdadeiro, falso}.
Operações: usam dois argumentos do domínio e 
fornecem resultado lógico:
Conectivos lógicos: conjunção (e, ^), disjunção 
(ou, ), disjunção exclusiva (xou, ), negação 
(não, ). A negação trabalha com somente um 
argumento.
Conectivos relacionais: = e .
9
===
!=
>=
<=
%Mod
CPseudolinguagem
A tabela abaixo apresenta os operadores que são
diferentes em C em relação a pseudolinguagem.
O símbolo = em C é utilizado para atribuição, 
correspondendo ao do português estruturado. 
Não há correspondente direto em C para o operador 
div .
10
O tipo básico associado a uma constante fica 
determinado pela própria apresentação da 
constante.
Tipos de Constantes e de Variáveis
Exemplos:
7 cte. inteiro
7.0 ou 7. cte. real
7 cte. caracter
falso cte. lógico
Para as variáveis, devem ser feitas no início do 
programa (ou de um bloco) as declarações (de 
tipo) de variáveis.
11
Sintaxe: <tipo> nome (s);
Implicações da declaração de uma variável:
Alocação de um espaço na memória que 
possa conter um valor do seu tipo.
Associação do endereço dessa posição da 
memória ao nome da variável.
Declarada uma variável, toda vez 
que ela for referenciada em qualquer 
comando do programa, o 
computador vai trabalhar com o 
conteúdo de seu endereço, que é o 
valor da variável.
Exemplos:
caracter f, n; 
inteiro idade; 
real a, b, X1;
lógico vendido;
12
1) Indique quais das constantes abaixo são do tipo inteiro:
( )1000 ( ) 0 ( ) -900 ( )verdadeiro ( )-456 ( )34 ( )-1.56
2) Indique quais das constantes abaixo são do tipo real:
( ) -678.0 ( ) 0.87 ( ) -9.12 ( ) falso ( ) -456.0 ( ) Cinco ( ) -1.56
3) Indique quais das constantes abaixo são do tipo lógico:
( ) -678.0 ( ) 0.87 ( ) -9.12 ( )falso ( )-456 ( ) Verdadeiro ( )-1.56
13
Exercícios
Indique com um X os nomes válidos para uma variável:
( ) endereco
( ) 21brasil
( ) nome_usuario
( ) nome*usuario
( ) cidade3
( ) #cabec
14
Comando de atribuição
Sintaxe: variável expressão;
Semântica: atribuir à variável o resultado da 
expressão.
Expressões aritméticas: fornecem resultado 
numérico (inteiro ou real).
Operações básicas: +, -, *, /
Exponenciação: potencia( A + B , N)
Funções matemáticas comuns: sen (X), cos (X), abs (X), 
raiz (X), arctan (X), exp (X), log (X), ln (X) etc.
Operadores para inteiros:
M mod I: resto da divisão inteira de M por I
M div I: quociente da divisão inteira de M por I
15
Comando de atribuição
Expressões lógicas: fornecem resultado lógico.
Conectivos relacionais: (<, , =, >, e )
Conectivos lógicos:
Conjunção: e, 
Disjunção: ou, 
Disjunção Exclusiva: xou, 
Negação: não, 
VFFFFF
VVVFVF
FVVFFV
FFVVVV
não AA xou BA ou BA e BBA
Tabela Verdade: Sejam A e B duas expressões lógicas.
16
Comando de atribuição
Prioridade de execução das operações em uma 
expressão:
1º. Parênteses (dos mais internos para os mais externos)
2º. Expressões aritméticas, seguindo a ordem: funções, * e /, + e 
3º. Comparações: <, , =, >, e 
4º. não
5º. e
6º. ou e xou
7º. Da esquerda para a direita quando houver indeterminações.
17
Comentários
inteiro maior; //maior valor lido
//ler os valores das variáveis A, B, C
Pseudocomando
leia os valores das variáveis A, B, C ;
Classifique os valores lidos em ordem crescente ;
Comandos de entrada e saída
leia (a, x); //serão lidos os valores das variáveis a, x nesta ordem
imprima ( Valor de N = , n, Fatorial de N = , fat);
18
Bloco
(1) Conjunto de comandos entre { }
(2) Pode-se declarar variáveis em seu interior.
(3) Delimitar o escopo das variáveis.
{
<declaração de variáveis>;
<comandos>;
}
19
1. Seqüência Simples
C1;
C2;
...
Cn;
Exemplo:
leia (X, Y);
A X + Y;
B X Y;
imprima (A, B);
Semântica: o controle de fluxo de execução 
entra na estrutura, executa comando por 
comando, de cima para baixo e sai da estrutura. 
Sintaxe: Exemplo em C:
scanf( %d %d , &X, &Y);
a = x + y;
b = x - y;
printf ( %d %d , a, b);
20
Até agora, foram estudados os seguintes
recursos visando especificamente a 
construção de algoritmos:
Conceito de Constante, Variável e Tipos de Dados.
Tipos de Dados Básicos.
Declaração de Variáveis.
Construção de Expressões (Aritmética e Lógica).
Sintáxe e Semântica dos Comandos de Atribuição
e de Entrada e Saída.
Seqüência Simples (primeiro dos três tipos de 
estruturas de controle).
Já é possível criar alguns algoritmos simples, 
bastando adotar um método de desenvolvimento.
21
Métodos de Criação de Programas
a) Método Direto
1. Entender o problema (análise do enunciado).
2. Descrição de variáveis: lista contendo para 
cada variável, o seu nome, uma descrição de 
seu objetivo e o seu tipo. Iniciar a lista pelos 
dados de entrada e pelos resultados a 
produzir.
3. Estudo de métodos: estabelecer (pelo 
menos) um método para obtenção de cada 
resultado pedido e para cada controle de 
processamento. Caso o método escolhido 
necessite utilizar novas variáveis, incluí-las na 
lista de descrição de variáveis.
22
Métodos de Criação de Programas
a) Método Direto 
4. Elaborar um algoritmo baseado no estudo de 
métodos, observando a seguinte seqüência:
principal
{
definição de novos tipos;
declaração de variáveis;
inicialização de variáveis;
corpo do algoritmo controlando:
leitura;
processamento;
saída;
}
23
Métodos de Criação de Programas
a) Método Direto
5. Testar o algoritmo, considerando, se possível, 
todas as alternativas de entrada.
6. Programa:traduzir o algoritmo para uma 
linguagem de programação e testá-lo 
exaustivamente no computador.
7. Documentação: o conjunto de documentos 
produzidos ao longo do método direto constitui 
a primeira documentação técnica do programa.
24
Métodos de Criação de Programas
b) Método dos Refinamentos Sucessivos 
Inicialmente, manter um nível mais alto de 
abstração (atenção em o que fazer e não em 
como fazer).
Dispensa-se o estudo de métodos e parte-se 
logo para a elaboração do algoritmo sendo que 
cada tarefa lógica distinta será representada por 
um pseudocomando.
25
Métodos de Criação de Programas
b) Método dos Refinamentos Sucessivos 
A primeira versão do algoritmo é rapidamente 
obtida pela listagem de alguns poucos 
pseudocomandos que deverão ser detalhados em 
refinamentos posteriores (em função de outros 
pseudocomandos ou em função da própria 
pseudolinguagem).
Depois que todos os pseudocomandos já 
estiverem detalhados em termos da 
pseudolinguagem, pode-se juntar as partes 
montando a versão final e completa do algoritmo. 
26
Métodos de Criação de Programas
c) Método Misto
Controles de caráter geral e as ações mais 
simples são desenvolvidas diretamente e a 
técnica de refinamentos sucessivos fica somente 
para as ações lógicas consideradas mais 
complexas.
Observação: Em qualquer dos métodos, pode-se 
desenvolver as ações lógicas bem definidas na 
forma de procedimentos (ou funções). A 
utilização destes módulos funcionais constitui 
uma técnica (programação modular) que 
geralmente diminui o esforço do programador e 
aumenta a qualidade de seus programas. 
27
Exercícios
1. Desenvolver os algoritmos a seguir, 
utilizando o método direto. 
a) Ler uma temperatura em graus Celsius e apresentá-
la convertida em graus Fahrenheit. A fórmula de 
conversão: F (9*C+160)/5
b) Calcular e apresentar o volume de uma lata de óleo
cilindrica, a partir da leitura do raio da base e da
altura.
c) Ler os valores do comprimento, da largura e da
altura de uma caixa, calcular e imprimir o seu volume. 
28
2. Construir um algoritmo para ler 5 valores 
inteiros, calcular e imprimir a soma desses 
valores.
3. Construir um algoritmo para ler 6 valores 
reais, calcular e imprimir a média aritmética 
desses valores.
4. Fazer um algoritmo para gerar e imprimir o 
resultado do número H, sendo H = 1 + 1/2 + 
1/3 + 1/4 + 1/5.
5. Construa em C os algoritmos acima.
DCC 120 Laboratório de Programação
30
Tipos de dados
Impressão
Formatação da Impressão
Variáveis
Entrada de Dados
31
São nomes usados para se fazer referência a 
variáveis, funções, rótulos e vários outros 
objetos definidos pelo usuário. 
Exemplos:
a, b, peso, i, contaCorrente, saldo, x1, x2......
OBS: A linguagem C é case sensitive, ou seja, as letras 
maiúsculas diferem das minúsculas.
32
Quando você declara um identificador dá a ele um tipo. 
Um tipo de objeto de dados determina como valores de 
dados são representados, que valores pode expressar, 
e que tipo de operações você pode executar com estes 
valores.
1.7E-308 a 1.7E+308
(15 casas de precisão)8 bytesdouble
3.4E-38 a 3.4E+38
(6 casas de precisão)4 bytesfloat
-2147483648 a 21474836474 bytesint
-128 a 127
(incluindo letras e símbolos)1 bytechar
FaixaEspaço que ocupa na memóriaTipo
Obs.: Alguns sistemas trabalham com valores inteiros de 2 bytes,
com faixa de -32768 a 32 767.
33
A exibição dos resultados do processamento e de 
mensagens é feita através da função pré-definida printf(), 
cujo protótipo está contido também no arquivo stdio.h. Sua 
sintaxe é a seguinte:
printf("Expressão" , Lista de argumentos );
Onde:
Expressão: contém mensagens a serem exibidas, 
códigos de formatação que indicam como o conteúdo 
de uma variável deve ser exibido e códigos especiais 
para a exibição de alguns caracteres especiais. 
Lista de argumentos: pode conter identificadores de 
variáveis, expressões aritméticas ou lógicas e valores 
constantes.
34
#include <stdio.h>
int main( )
{
printf("Estou aprendendo a programar em C"); 
return 0;
}
35
ponto flutuante com dupla precisãodouble%lf
uma cadeia de caracteres.........%s
um número na notação científicafloat ou double%e
um número em ponto flutuantefloat%f
um inteiroint%d ou %i
um único caracterechar%c
Elemento armazenadoTipoCódigo
#include <stdio.h>
int main( )
{
printf("Valor recebido foi %d" ,10);
return 0;
}
36
#include <stdio.h>
int main()
{
printf("Caracter A: %c" , 'A');
return 0;
}
#include <stdio.h>
int main()
{
printf("Valor inteiro %d e um float %f" ,10 ,1.10);
return 0;
}
37
#include <stdio.h>
int main()
{
printf("Minha string: %s", "Entendi tudo!!!! ");
return 0;
}
#include <stdio.h>
int main()
{
printf("Deveria imprimir um float, ");
printf("mas mandei imprimir um inteiro: %d" ,1.10);
return 0;
}
38
Impressão de Códigos Especiais
#include <stdio.h>
int main()
{
printf("\t\tx\n");
printf("\tx\t\tx\n");
printf("\t\tx\n");
return 0;
}exibe o caractere %%%
exibe o caractere \\\
exibe o caractere "\"
emite um sinal sonoro (beep)\a
leva o cursor para a próxima página\f
executa um retrocesso\b
executa uma tabulação\t
leva o cursor para a próxima linha\n
AçãoCódigo
39
#include <stdio.h>
int main()
{
printf("Default: %f \n",3.1415169265);
printf("Uma casa: %.1f \n",3.1415169265);
printf("Duas casas: %.2f \n",3.1415169265);
printf("Tres casas: %.3f \n",3.1415169265);
printf("Notacao Cientifica: %e \n",3.1415169265);
return 0;
}
Por default, a maioria dos compiladores C exibem 
os números de ponto flutuante com seis casas 
decimais.
Para alterar este número podemos acrescentar .n 
ao código de formatação da saída, sendo n o 
número de casas decimais pretendido. 
40
#include <stdio.h>
int main()
{
printf("Valor: %d \n",25);
printf("Valor: %10d \n",25);
return 0;
}
O programa pode fixar a coluna da tela a partir da qual o 
conteúdo de uma variável, ou o valor de uma constante 
será exibido. Isto é obtido acrescentado-se um inteiro m ao 
código de formatação. Neste caso, m indicará o número de 
colunas que serão utilizadas para exibição do conteúdo.
41
1. Fazer um programa que imprima o seu nome.
2. Modificar o programa anterior para imprimir na 
primeira linha o seu nome, na segunda linha a sua 
idade e na terceira sua altura.
3. Imprimir o valor 2.346728 com 1, 2, 3 e 5 casas 
decimais.
42
O nome de uma variável (identificador) é formado por um ou mais 
caracteres, sendo que:
o primeiro caractere é uma letra ou sublinha ( _ );
os outros caracteres podem ser letras, algarismos ou sublinha ( _ ).
Exemplos:
a) Nomes válidos: L a de op1 V9a Lista_Notas a_2 p56 A1 _2A
b) Nomes Inválidos: x+ t.6 43x &ah $dolar Lista-Notas n! %p
Em C, letras maiúsculas e minúsculas são diferentes. Os seguintes 
nomes são distintos:
PESO 
Peso 
peso
peSo
Uma variável não pode ter o mesmo nome de uma palavra-chave de C, 
como por exemplo:
main, cout, int, float, char, short, return, case, void
43
Declaração de Variáveis
As variáveis só podem armazenar informações ou dados 
sempre de um mesmo tipo (inteiro, real, caractere ou char).
Na linguagem C, a declaração de variáveis obedece a 
seguinte sintaxe:
<tipo> <nome_var>;
ou
<tipo> <nome_var1>, <nome_var2>, ..... ,<nome_varn>;
É importante não esquecer que quando se declara uma 
variável, um espaço num determinado endereço na memória 
é alocado para armazenar um dado que obrigatoriamente tem 
que ser do mesmo tipo que o da variável.
Toda e qualquer variável deve ser declarada e sua 
declaração deve ser feita antes de sua utilização no 
programa.
44
Declaração de Variáveis - Exemplo
Exemplos:
int a,b, c;
char letra, d, e;
float f1;
float f2,f3;
Marque as declarações válidas:
( ) int a,
( ) char c;
( ) int a,b,a;
( ) float f1,f2,f3,4f;
( ) int meu_nro;
( ) float leitura_sensor;
45
O operador de atribuição em C é o sinal de igual =
Sintaxe:
<variavel> = <expressão>;
Exemplos:
int a,b,c,d;
a = 5;
c = 7;
b = a;
d = a + b + c;
ou
int a=5;
int c=7;
int b,d;b=a;
d=a+b+c;
46
4Resto da divisãoBinário%
1Inversão do sinalUnário-
1Manutenção do sinalUnário+
2DecrementoUnário--
2IncrementoUnário++
3DivisãoBinário/
3MultiplicaçãoBinário*
5SubtraçãoBinário-
5AdiçãoBinário+
PrioridadeOperaçãoTipoAritméticos
47
Exemplos:
a = a + b;
a = a + 4;
a = b / 2;
a = 4 * 2 + 3; // qual o valor final de a?
b = 2 * 3 2 * 2; // qual o valor final de b?
a++; // similar a a = a + 1;
b--; // similar a b = b 1;
48
Diferente!=
Igual= =
Menor ou igual<=
Not (não)!Menor que<
Or (ou)||Maior ou igual>=
And (e)&&Maior que>
LógicosRelacionais
49
Ela é o complemento de printf() e nos permite ler dados formatados da 
entrada padrão (teclado). Sua sintaxe:
scanf("expressão de controle", argumentos); 
Entendendo o scanf:
......
int a;
.......
scanf ( %d , &a);
Operador utilizado para 
obter o endereço de 
memória da variável.
50
#include <stdio.h>
int main()
{
int num;
printf("Digite um valor: ");
scanf("%d",&num);
printf("\nO valor digitado foi %d.",num);
return 0;
}
51
#include <stdio.h>
int main()
{
int n1,n2,soma;
printf("Digite dois valores: ");
scanf("%d",&n1);
scanf("%d",&n2);
soma = n1 + n2;
printf("\n%d + %d = %d.",n1,n2,soma);
return 0;
}
52
1. Ler uma temperatura em graus Celsius (C) e apresentá-
la convertida em graus Fahrenheit. A fórmula de 
conversão é F = (9*C+160)/5.
2. Calcular e apresentar o volume de uma lata de óleo, 
utilizando a fórmula: volume = 3.14159*raio*raio*altura.
3. Elaborar um programa que calcule e apresente o volume 
de uma caixa retangular, por meio da fórmula volume = 
comprimento*largura*altura.

Outros materiais