introdução à computação - jorge macêdo1 icc – algoritmos 1 jorge macêdo

60
Introdução à Computação - Jorge Macêdo 1 ICC – Algoritmos 1 Jorge Macêdo

Upload: internet

Post on 17-Apr-2015

105 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

Introdução à Computação - Jorge Macêdo 1

ICC – Algoritmos 1

Jorge Macêdo

Page 2: Introdução à Computação - Jorge Macêdo1 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

Page 3: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 4: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 5: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 6: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 7: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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!

Page 8: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 9: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 10: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 11: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 12: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 13: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 14: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 15: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 16: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 17: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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 <).

Page 18: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

Introdução à Computação - Jorge Macêdo 18

Programa

Page 19: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 20: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

Introdução à Computação - Jorge Macêdo 20

Interpretação

Page 21: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

Introdução à Computação - Jorge Macêdo 21

Compilação

Page 22: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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");}

Page 23: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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");}

Page 24: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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");}

Page 25: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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");}

Page 26: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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");}

Page 27: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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");}

Page 28: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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");}

Page 29: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 30: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

Introdução à Computação - Jorge Macêdo 30

Fluxograma

Terminador

Comando

Entrada de Dados

Exibir

Decisão

Componentes mas utilizados

Page 31: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

Introdução à Computação - Jorge Macêdo 31

Exemplo em Fluxograma

Início

Meu primeiro progrma em C

Fim

Page 32: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 33: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 34: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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();

}

Page 35: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

Introdução à Computação - Jorge Macêdo 35

Exemplo 01

Início

Fim

num ← 2

Este e o numero dois:

ESCREVA(num)

Page 36: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 37: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 38: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 39: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 40: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 41: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 42: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 43: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 44: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 45: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 46: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

Introdução à Computação - Jorge Macêdo 46

Constantes Exemplo:

const char letra = 'a'; const int size = 400; const double gravidade = 9.81;

Page 47: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 48: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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;

}

Page 49: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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>

Page 50: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 51: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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 >);

Page 52: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 53: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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]"

Page 54: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 55: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 56: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 57: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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);

}

Page 58: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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

Page 59: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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.

Page 60: Introdução à Computação - Jorge Macêdo1 ICC – Algoritmos 1 Jorge Macêdo

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%