Introdução à Computação - Jorge Macêdo 1
ICC – Algoritmos 1
Jorge Macêdo
Programação I - Jorge Macêdo 2
O que é software? Termo associado aos programas de
computador. Visão muito restritiva. Software compreende:
Programa Documentação
Do sistema De usuário
Programação I - Jorge Macêdo 3
O que é software? Produtos Genéricos
Produzidos por uma organização de desenvolvimento e vendidos no mercado
Pacotes de software Produtos sob encomenda (ou personalizados)
Encomendados por um cliente particular e desenvolvidos por uma empresa de software
Sistemas de controle de dispositivos eletrônicos
Programação I - Jorge Macêdo 4
Atributos de um bom software Além dos serviços que eles fornecem existem
outros atributos associados Não estão diretamente associados ao que o software faz
Estes Atributos: Refletem seu comportamento quando em
funcionamento, A estrutura e Organização do programa fonte e também A Documentação associada.
Programação I - Jorge Macêdo 5
Atributos de um bom software Dependendo da aplicação do sistema, o
conjunto de atributos pode mudar. Exemplos
Um sistema bancário deve ser seguro; Um jogo interativo deve tem uma resposta
rápida; Um sistema de controle telefonia precisa ser
confiável.
Programação I - Jorge Macêdo 6
Objetivo da Engenharia de Programas
Confeccionar programas com qualidade. Programa com qualidade:
Produz resultados úteis e confiáveis na oportunidade certa.
É fácil de usar, fácil de corrigir caso ocorra alguma falha. Fácil de modificar quando houver uma alteração de
requisitos e passível de evolução. Opera com economia de recursos, foi desenvolvido no
prazo estipulado e a um custo aceitável.
Programação I - Jorge Macêdo 7
A importância do Software Durante as 3 primeiras décadas da era do
computador, o principal desafio era desenvolver um HARDWARE de baixo custo e alto desempenho.
O hoje o desafio é melhorar a qualidade (e reduzir os custos) das soluções baseadas em SOFTWARE!
Programação I - Jorge Macêdo 8
Linguagem de Programação A comunicação com o computador também é
feita através de um conjunto de regras, originando a: Linguagem de Programação! Exemplo: Pascal, C, Delphi, Java, etc.
Programação I - Jorge Macêdo 9
Definição de Programas Programas são seqüências finitas de ordens
que têm o objetivo de resolver um problema, apresentar uma figura, calcular valores, tomar ou auxiliar decisões.
Programação I - Jorge Macêdo 10
Lógica de Programação Para se programar em uma linguagem é
necessário possuir Lógica de Programação.
Lógica de Programação consiste em compreender claramente os diversos passos e funções que são realizados na execução de um programa.
Programação I - Jorge Macêdo 11
Algoritmo Algoritmo é uma seqüência de instruções
organizadas de forma lógica e estruturada (sem desvios), expressas em linguagem natural (Português estruturado), que tem por finalidade resolver um problema ou descrever uma tarefa.
Programação I - Jorge Macêdo 12
Exemplo – Escovar os Dentes Escovar os dentes pela manhã.
Algoritmo Escovar_dentes Colocar creme dental na escova Escova os dentes Enxaguar a boca com água Enxugar a boca
Fim_do_algoritmo.
Introdução à Computação - Jorge Macêdo 13
Introdução ao C C é uma linguagem de programação de propósito
geral Tem como meta características como:
Portabilidade e Flexibilidade Não é atada a nenhum S.O. ou uma máquina
particular. Tida como linguagem de programação de sistemas
Bastante utilizada na construção de compiladores e S.O.’s
Introdução à Computação - Jorge Macêdo 14
Introdução ao C A primeira versão foi implementada para o sistema
operacional UNIX pela Bell Laboratories Dennis M. Ritchie e Ken Thompson
Implementaram no início da década de 1970 Rodava em um PDP11 da DEC (Digital Equipment
Corporation) C Difundiu-se rapidamente (1983) ANSI (American National Standard
Institurte) padronizou a linguagem
Introdução à Computação - Jorge Macêdo 15
Introdução ao C Tornou-se popular como ferramenta para
programação de computadores pessoais Para fabricantes de software comercial Para usuários finais interessados em
programação
Introdução à Computação - Jorge Macêdo 16
C comparado a outras linguagens Alto Nível
Devemos entender como a capacidade da linguagem de compreender instruções em “dialetos” próximos ao Inglês
Ex: Ada e Pascal Baixo Nível
Para aquelas linguagens que se aproximam do Assembly, que a linguagem própria da máquina
Introdução à Computação - Jorge Macêdo 17
C comparado a outras linguagens Quanto mais clara uma linguagem for para o
humano (simplicidade >) Mais obscura o será para a máquina
(velocidade <).
Introdução à Computação - Jorge Macêdo 18
Programa
Introdução à Computação - Jorge Macêdo 19
Compilação e Interpretação C é uma linguagem compilada:
lê todo o código fonte e gera o código objeto (ling. de máquina) uma única vez.
Linguagens Interpretadas: lê o código fonte, traduz e executa cada vez que
o programa for executado.
Introdução à Computação - Jorge Macêdo 20
Interpretação
Introdução à Computação - Jorge Macêdo 21
Compilação
Introdução à Computação - Jorge Macêdo 22
Estrutura Básica de um Programa em C
/* Primeiro Programa em C */#include <stdio.h>main(){ printf("Meu primeiro programa em C\n");}
Introdução à Computação - Jorge Macêdo 23
Estrutura Básica de um Programa em C
/* Primeiro Programa em C */#include <stdio.h>main(){ printf("Meu primeiro programa em C\n");}
Introdução à Computação - Jorge Macêdo 24
Estrutura Básica de um Programa em C
/* Primeiro Programa em C */#include <stdio.h>main(){ printf("Meu primeiro programa em C\n");}
Introdução à Computação - Jorge Macêdo 25
Estrutura Básica de um Programa em C
/* Primeiro Programa em C */#include <stdio.h>main(){ printf("Meu primeiro programa em C\n");}
Introdução à Computação - Jorge Macêdo 26
Estrutura Básica de um Programa em C
/* Primeiro Programa em C */#include <stdio.h>main(){ printf("Meu primeiro programa em C\n");}
Introdução à Computação - Jorge Macêdo 27
Estrutura Básica de um Programa em C
/* Primeiro Programa em C */#include <stdio.h>main(){ printf("Meu primeiro programa em C\n");}
Introdução à Computação - Jorge Macêdo 28
Estrutura Básica de um Programa em C
/* Primeiro Programa em C */#include <stdio.h>main(){ printf("Meu primeiro programa em C\n");}
Introdução à Computação - Jorge Macêdo 29
Tem por objetivo buscar a solução de um dado problema dividindo-o em pequenas partes.
Essa divisão visa facilitar a compreensão do problema.
Após a fase de interpretação do problema e da definição das variáveis a serem utilizadas, pode-se diagramar o algoritmo com o uso de fluxogramas.
Fluxograma
Introdução à Computação - Jorge Macêdo 30
Fluxograma
Terminador
Comando
Entrada de Dados
Exibir
Decisão
Componentes mas utilizados
Introdução à Computação - Jorge Macêdo 31
Exemplo em Fluxograma
Início
Meu primeiro progrma em C
Fim
Introdução à Computação - Jorge Macêdo 32
Variável Variável: “objeto” que pode assumir diversos
valores; Espaço de memória de um certo tipo de dado
associado a um nome para referenciar seu conteúdo.
Podem estar declaradas no início do arquivo fonte (globais) São visíveis em todo o programa fonte
Ou em funções (locais) Visíveis somente nas funções onde são declaradas
Introdução à Computação - Jorge Macêdo 33
Nomes de Variáveis Podem ser formados por letras e números Deve começar por uma letra Sublinhado também pode ser considerado
uma letra.
Introdução à Computação - Jorge Macêdo 34
Exemplo 01/* Programa : Exemplo de variáveis! */#include <stdio.h>void main(){
int num; /* declaracao */num = 2; /* inicializa */printf(“Este é o número dois: %d”, num); /*acessa a variável */getchar();
}
Introdução à Computação - Jorge Macêdo 35
Exemplo 01
Início
Fim
num ← 2
Este e o numero dois:
ESCREVA(num)
Introdução à Computação - Jorge Macêdo 36
Variáveis - Continuação Em C todas as variáveis devem ser declaradas Se você tiver mais de uma variável do mesmo tipo,
poderá declará-las de uma única vez separando seus nomes por vírgulas. int aviao, foguete, helicoptero;
O operador de atribuição ( = ) é usado “colocar” valores em uma variável
Introdução à Computação - Jorge Macêdo 37
Tipos de Dados O tipo de uma variável informa a quantidade
de memória, em bytes, que esta irá ocupar e a forma como o seu conteúdo será armazenado.
Em C existem apenas 5 tipos básicos de variáveis, sendo: int,float,double,char e void
Introdução à Computação - Jorge Macêdo 38
Tipos de Dados
Sem valorvoid
Real de Ponto Flutuante de Dupla Precisãodouble
Real de Ponto Flutuantefloat
Inteiroint
Caracterchar
CategoriaIdentificador
Introdução à Computação - Jorge Macêdo 39
Modificadores Com exceção de void, os tipos de dados
básicos podem estar acompanhados por “modificadores” na declaração de variáveis. Os “modificadores” de tipos oferecidos em C são: signed,unsigned,long e short
Introdução à Computação - Jorge Macêdo 40
Modificadores
Reduz precisãoshort
Estende precisãolong
Bit mais significante é parte do número (só +)unsigned
Bit mais significante é usado como sinalsigned
EfeitoModificadores
Introdução à Computação - Jorge Macêdo 41
Tipos de Dados Resultantes
±1,7E-308 a ±1,7E+3088 Bytesdouble
±1,7E-308 a ±1,7E+3088 Byteslong float
±3,4E-38 a ±3,4E+384 Bytesfloat
0 a 4.294.967.2954 Bytesunsigned long int
-2.147.483.648 a +2.147.483.647
4 Bytes(signed) long int
0 a 65.5352 Bytes(short) unsigned int
-32.768 a +32.7672 Bytes(short) (signed) int
0 a 2551 Byteunsigned char
-128 a +1271 Byte(signed) char
Valores PossíveisTamanhoTipo
Introdução à Computação - Jorge Macêdo 42
Dica A escolha de nomes significativos para suas
variáveis pode ajudá-lo a entender o que o programa faz e prevenir erros.
Introdução à Computação - Jorge Macêdo 43
Palavras-chave
Uma variável não pode ter o mesmo nome de uma palavra-chave de C.
As Palavras-chave em C:
voidstatic
externcontinueunsignedsizeofintenum
longconstunionsignedif else
chartypedefshortgotodoublecase
whileswitchreturnfordobreak
volatilestructregisterfloatdefaultauto
Introdução à Computação - Jorge Macêdo 44
Constantes Um constante tem valor fixo e inalterável. Há duas maneiras de declarar constantes em C:
a) usando a diretiva #define do pré-processador: #define < nome da constante > < valor > Esta diretiva faz com que toda aparição do nome da constante
no código seja substituída antes da compilação pelo valor atribuído.
A diretiva deve ser colocada no inicio do arquivo e tem valor global. Não é reservado espaço de memória no momento da declaração define.
Introdução à Computação - Jorge Macêdo 45
Constantes Exemplo:
#define tamanho 400 #define true 1 #define false 0 /*não usa ";" nem "=" */
b) utilizando a palavra-chave "const": const < tipo > < nome > = < valor >;
Esta forma reserva espaço de memória para uma variável do tipo declarado.
Uma constante assim declarada só pode aparecer do lado direito de qualquer equação.
Introdução à Computação - Jorge Macêdo 46
Constantes Exemplo:
const char letra = 'a'; const int size = 400; const double gravidade = 9.81;
Introdução à Computação - Jorge Macêdo 47
Constantes Em C uma constante caractere é escrita
entre aspas simples, uma constante cadeia de caracteres entre aspa duplas e constantes numéricas com o número propriamente dito.
Exemplos de constantes: caractere: ‘a’ cadeia de caracteres: “Bom Dia !!!!” número: -3.141523
Introdução à Computação - Jorge Macêdo 48
Constantes – Exemplo 02/* Programa: Exemplo do uso de
Constantes */#define TAMANHO 4void main(){
const char c = ‘c’;const int num = 10;int val = TAMANHO;
}
Introdução à Computação - Jorge Macêdo 49
Entrada/Saída Console As rotinas de entrada/saída do console se
encontram nas bibliotecas "stdio.h" e "conio.h" #include <stdio.h> #include <conio.h>
Introdução à Computação - Jorge Macêdo 50
printf() A função printf() é uma das funções de
E/S (entrada e saída) que podem ser usadas em C.
Ela não faz parte da definição de C mas todos os sistemas têm uma versão de printf() implementada.
Ela permite a saída formatada na tela.
Introdução à Computação - Jorge Macêdo 51
printf() Exemplos:
printf(“Bom Dia!!!!”); printf(“Este é o número dois: %d”,
num); A função printf()pode ter um ou vários
argumentos. Sintaxe de printf():
printf(“string-formatação”, < lista de parâmetros >);
Introdução à Computação - Jorge Macêdo 52
printf() A string de formatação pode conter caracteres que
serão exibidos na tela e códigos de formatação que indicam o formato em que os argumentos devem ser impressos.
Os caracteres que não podem ser obtidos diretamente do teclado para dentro do programa (como a mudança de linha) são escritos em C, como a combinação do sinal \ (barra invertida) com outros caracteres
Introdução à Computação - Jorge Macêdo 53
printf() A string de formatação define a forma
como os parâmetros serão apresentados e tem os seguintes campos: "%[Flags] [largura] [.precisão] < tipo > [\Escape
Sequence]"
Introdução à Computação - Jorge Macêdo 54
printf() - Flags
largura = número máximo de caracteres a mostrar
precisão = número de casas após a vírgula a mostrar
apresenta ponto decimal para reais
apresenta Ox para hexadecimais
Apresenta zero no início para octais#
Apresenta branco se o valor (da variável) for positivo, sinal de – se valor negativo
Branco
Apresenta sinal (+ ou -) do valor da variável+
Justifica saída à esquerda-
EfeitoFlags
Introdução à Computação - Jorge Macêdo 55
printf() – Escape Sequence
Valor em Hexadecimal\x
Tabulação\t
Retorno do Cursor\r
Valor em Octal\o
Nova Linha\n
Saltar Página de Formulário\f
Backspace (Retrocesso)\b
Tocar Sino (Bell)\a
Nulo\0
Aspas\”
Apóstrofo\’
Barra\\
EfeitoEscape Sequence
Introdução à Computação - Jorge Macêdo 56
printf() - tipo
Hexadecimal %x
Inteiro decimal sem sinal (unsigned int)%u
Apontador de strings, emite caracteres até aparecer zero
%s
Octal%o
Real Longo (double)%lf
Decimal Longo%l, %ld
Real (float)%f
Formato científico%e, %E
Inteiro decimal%d, %i
Caracter%c
FormatoTipo
Introdução à Computação - Jorge Macêdo 57
Exemplo 03/* Programa de Exemplo da formatação da saída com Printf() */#include <stdio.h>int main(){
float x;double y = -203.4572345;int a, b;a = b = 12;x = 3.141523;printf("Bom dia");printf("\n\t\tBom dia\n"); /* pula linha após escrever bom dia */printf("O valor de x é %7.3f\n", x);printf("Os valores de i, j e y são: %d %d %lf \n", a,b,y);
}
Introdução à Computação - Jorge Macêdo 58
Exemplo 03/* Programa de Exemplo da formatação da saída com Printf() */#include <stdio.h>int main(){
float x;double y = -203.4572345;int a, b;a = b = 12;x = 3.141523;printf("Bom dia");printf("\n\t\tBom dia\n"); /* pula linha após escrever bom dia */printf("O valor de x eh %6.3f\n", x);printf("Os valores de i, j e y sao: %d, %d, %lf \n", a,b,y);
}
Bom dia Bom diaO valor de x eh 3.142Os valores de i, j e y sao: 12, 12, -203.457235
Introdução à Computação - Jorge Macêdo 59
Observação Caso você queira imprimir na tela os
caracteres especiais ‘\’ ou ‘%’, você deve escrevê-los na função printf() de forma duplicada
O que indicará ao compilador que este não se trata de um parâmetro da função printf() mas sim que deseja-se imprimir realmente este caractere.
Introdução à Computação - Jorge Macêdo 60
Exemplo#include <stdio.h>void main(){
int reajuste = 10;printf(“O reajuste foi de %d%%\n”, reajuste);
} A saída será:
O reajuste foi de 10%