Você está na página 1de 90

Algoritmos DCC 119

Introduo e Conceitos Bsicos

Sumrio
Sistemas de Numerao Sistemas Computacionais Estrutura de um Computador Digital Sistemas Operacionais Algoritmo Introduo Formas de representao de algoritmos

Sistemas de Numerao
Como fazer a converso entre o sistema decimal e o sistema utilizado num computador?

DECIMAL

BINRIO

HEXADECIMAL

Base

Base ou raiz de um sistema de numerao: o nmero de algarismos distintos usados nesse sistema de numerao. Exemplo: o sistema decimal possui base 10, isto , usa 10 algarismos distintos.

Notao Posicional

o nome dado notao usada por alguns sistemas numricos, onde cada algarismo tem, alm do seu valor absoluto, um valor de posio dentro de cada nmero desse sistema em que ele aparece. Por exemplo, no sistema decimal: O valor absoluto 2 no nmero 2000 representa uma grandeza diferente do que 2 em 20.
5

Exemplo de Sistema de Numerao que no usa Notao Posicional

O sistema de numerao romano constitudo de um conjunto N de 7 algarismos diferentes, cada um representando um valor fixo, independentemente de sua posio relativa no nmero:
N = (I, V, X, L, C, D, M) Indicando, respectivamente, os valores: 1, 5, 10, 50, 100, 500 e 1000 Observe que neste sistema no h representao para o zero. Tente multiplicar XIII x XVII

Sistema Decimal ou de Base 10


Possui 10 algarismos distintos (algarismos arbicos = 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9) e usa notao posicional. Ex.: 7 = 7 x 100 35 = 30 + 5 = 3 x 101 + 5 x 100 81,508 = 8 x 101 + 1 x 100 + 5 x 10-1 + 0 x 10-2 + 8 x 10-3 Obs.: Na notao posicional (qualquer que seja a base) o primeiro algarismo a esquerda da vrgula, representa uma potncia da base com expoente igual a 0 (zero) e esse expoente inteiro e crescente para a esquerda.
7

Sistema Decimal: Como Funciona


0 1 2 3 4 5 6 7 8 9 10

Zera e vai-um

Sistema Binrio ou de Base 2


Usa notao posicional e possui dois algarismos distintos: 0 e 1.

00 01 10 11

Zera e vai-um

Converso Decimal - Binrio


Decimal 0 1 2 3 4 5 6 7 8 9 10 Binrio 0 1 10 11 100 101 110 111 1000 1001 1010

Problema: como converter 2358(10) para a base 2? E 100101 (2) para a base 10?

10

Sistema Hexadecimal ou de Base 16


Usa notao posicional e possui 16 algarismos distintos: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E e F.
Decimal Hexadecimal 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 Decimal Hexadecimal 8 8 9 9 10 A 11 B 12 C 13 D 14 E 15 F
11

Converso de Base
Converso da base b (qualquer) para decimal: Para converter um nmero na base b em decimal, basta somar os produtos dos algarismos pelas potncias da base b que eles representam.
Ex.: Converter os nmeros abaixo para a base 10 (10)16 1 x 161 + 0 x 160 = (16)10 (F30A)16 15 x 163 + 3 x 162 + 0 x 161 + 10 x 160 = (62218)10 (1101)2 1 x 23 + 1 x 22 + 0 x 21 + 1 x 20 = (13)10 (10001111)2 27 + 23 + 22 + 21 + 20 = (143)10

12

Converso de Base
Converso de decimal para a base b (qualquer): Para converter um nmero decimal para a base b, devem ser feitas divises inteiras sucessivas por b at que se encontre quociente 0 (zero). O nmero correspondente na base b ser formado pelos restos das divises, da ltima at a primeira diviso, nessa ordem. Ex.: Converter o nmero decimal abaixo para hexadecimal 45286 16 6 2830 16 14 176 16 E 0 11 16 11 0 (45286)10 (B0E6)16 B
13

Converso de Base
Converter os nmeros decimais abaixo para binrios
18 0 2 9 1 2 4 0 2 2 0 2 1 1 2 0

18 (10) = 10010(2)

14

Converso Binrio Hexadecimal


Como 16 potncia de 2 (24 = 16), nesta converso, cada algarismo hexadecimal d origem a quatro algarismos binrios. Tabela de converso: Hexadecimal 1 2 4 8 Valor da posio 0 0 0 1 8 0 0 1 0 4 Binrio 0 1 0 0 2 1 0 0 0 1
15

Converso Binrio Hexadecimal


Ex.: Hexadecimal em Binrio:
8 4 2 1

(9)16 (1 0 0 1)2 ( isto , 1 + 8 = 9) (D)16 (1 1 0 1)2 (13A)16 ( 0 0 0 1 | 0 0 1 1 | 1 0 1 0 )2 (FB09)16 ( 1 1 1 1 1 0 1 1 0 0 0 0 1 0 0 1)2 Binrio em hexadecimal:
8 1

(1 0 0 1)2 (9)16 (0 0 1 0 | 1 1 0 1 | 1 0 1 1 | 0 1 0 1)2 (2DB5)16 (1 0 0 0 | 1 0 0 1 | 1 0 1 1 | 1 1 1 1)2 (89BF)16


16

Resumo
16
HEXADECIMAL DECIMAL

2
BINRIO

x16n

x2n

tabela

17

Introduo (Parte II) Sistemas Computacionais


DCC119 Algoritmos

18

Sistemas Computacionais
Peopleware (usurio) Software (programas) Hardware (mquina)

Hardware: Corresponde parte material, aos componentes fsicos do sistema. o computador propriamente dito. Software: Conjunto de programas (instrues arranjadas logicamente) e dados.
19

Estrutura de um Computador Digital


Unidade Central de Processamento Unidade Lgica e Aritmtica Unidade de Controle Memria Principal

Memria Secundria

Interfaces

Unidades de Entrada

Unidades de Sada

Perifricos

20

Processador
Tambm chamada de microprocessador ou unidade de processamento central (UPC ou CPU) e responsvel pelo gerenciamento de todas as funes do sistema. A CPU distingue somente dois estados fsicos, representados pelos nmeros 0 e 1 dgitos binrios. dividida em: Unidade Aritmtica e Lgica: encarregada de realizar operaes aritmticas e lgicas elementares. Unidade de Controle: encarregada de coordenar os diversos componentes.
21

Memria Principal (RAM Random Access Memory)


a unidade encarregada de armazenar os programas e dados ( recebidos das unidades de entrada) para imediato processamento pela CPU. Aps a execuo de cada instruo do programa, a CPU armazena o resultado gerado na memria principal.
CPU Memria Principal

A memria considerada um meio temporrio de armazenamento de dados, que permanecem ali somente durante o tempo em que estiverem sendo processados.
22

Memria Principal Conceitos: Bit, Byte e Word


Bit (Binary DigiT dgito binrio) Unidade de Informao, tem somente os valores 0 ou 1; Byte (BinarY Term termo binrio) Conjunto de 8 bits, com o qual pode-se representar os nmeros, as letras, os sinais de pontuao, etc... Palavra (Word) a quantidade de bits que a CPU processa por vez.

23

Memria Principal Conceitos: Bit, Byte e Word


CPU ou micro de: 8 bits 16 bits 32 bits 64 bits 128 bits Palavra de: 8 bits = 1 byte = 1 caractere 16 bits = 2 bytes = 2 caracteres 32 bits = 4 bytes = 4 caracteres 64 bits = 8 bytes = 8 caracteres 128 bits = 16 bytes = 16 caracteres

Exemplo: se a palavra (texto) TRADUTOR tiver sido transferida da memria para uma CPU de: 8 bits <= este precisar de 8 operaes para process-la; 16 bits <= este precisar de 4 operaes para process-la; 32 bits <= este precisar de 2 operaes para process-la; 64 bits <= este precisar de uma operao para process-la;

24

Memria Principal Unidades de Medida


Unidades Kilo (K) Mega (M) Giga (G) Tera (T) Usual 103 106 109 1012 Informtica 210 bytes 220 bytes 230 bytes 240 bytes

Exemplo: Qual a quantidade exata de bits que um DISQUETE de 1,44 MB possui? 1,44 MB = 1,44 * 220 * 8 = 12079595,52 bits
25

Memria Principal Organizao


Representao de uma memria de 1 KB:
Endereo
0 1

Byte

2
... 1023

No byte de endereo 2 est armazenado o cdigo ASCII do caracter A.

O processador acessa o contedo de um byte a partir do endereo desse byte. Por que 1 KB = 210 bytes e no 103 bytes? ou Quantos bits so necessrios para representar um dos endereos da memria acima?
26

Memria Secundria
A memria secundria pode ser composta por vrios dispositivos capazes de ampliar a capacidade de armazenamento da memria principal. Eles podem armazenar grandes quantidades de dados e programas. A memria secundria um tipo de memria no voltil, teoricamente permanente e mais lenta.
CPU Memria Principal

Memria Secundria

Outra funo da memria secundria oferecer uma expanso virtual da memria principal Memria Virtual.
Memria Virtual Memria Principal Memria Secundria

27

Interface
Representa o meio de comunicao entre duas partes do sistema. Exemplo: disco e computador, teclado e computador, computador e impressora. Existem dois tipos de interface: - serial: os dados so enviados um bit de cada vez (cabos com um nico fio); - paralela: um byte de cada vez (cabos com 8 fios);
28

Linguagens de Programao
Para que um algoritmo possa ser executado pelo computador, necessrio que ele seja programado, isto , que ele seja transcrito para uma linguagem que o computador possa entender, direta ou indiretamente.

29

Tradutor
Os computadores s podem executar diretamente os algoritmos expressos em linguagem de mquina (que um conjunto de instrues capazes de ativar diretamente os dispositivos eletrnicos do computador). Um tradutor um programa que traduz um algoritmo que est escrito em uma determinada linguagem de programao em linguagem de mquina.
Programa Fonte
Algoritmo ou programa escrito em uma determinada linguagem de programao

Tradutor

Programa Objeto

Algoritmo ou programa traduzido para linguagem de mquina

30

Processo de Traduo
O processo de traduo pode ser feito por: Compilao: L, analisa e traduz todos os comandos do programa fonte, criando o programa objeto. Interpretao: Traduz ou interpreta cada comando ao execut-lo.
Linguagem de Alto Nvel Programa Fonte Interpretador Tradutor Compilador Linguagem de Mquina Programa Objeto Execuo

Execuo de todo o programa


Executa um comando e volta

31

Principais Tipos de Linguagens de Programao

Linguagem de Mquina ( ou Absoluta ):

a nica linguagem que atende ao computador, por satisfazer o seu projeto lgico. Instrues representadas por cdigos binrios. Exemplo de instruo:
0000 0 1010 0011 A 3 Campo de Operando 0101 5

0001 0000 1 0 Cd. de Operao

Esta instruo ordena que o contedo do endereo 0A3516 da memria seja somado (1016) ao acumulador (registrador especial usado para acumular resultados) e que o resultado fique guardado no acumulador.

32

Principais Tipos de Linguagens de Programao

Linguagem Simblica (de Baixo Nvel, de Montagem ou Assembler):

Surgiu afim de simplificar a difcil programao da linguagem de mquina. Substitui os cdigos binrios por abreviaes de nomes sugestivos que lembram a funo da instruo. Exemplo de instruo: ADD X

ADD ordena que o valor da varivel X seja somado ao acumulador e que o resultado fique nele guardado. X o nome da varivel, criado pelo programador, que representa um endereo da memria (por exemplo 0A3516) que contm armazenado o valor desta varivel. Surgimento do conceito de varivel.
33

Principais Tipos de Linguagens de Programao

Linguagem Automtica ( ou de Alto Nvel ):

So semelhantes s linguagens usadas para descrever o problema que se deseja resolver, ressaltando a linguagem profissional a que o usurio est acostumado. Existem vrias linguagens automticas: FORTRAN (FORmula TRANslation), ALGOL, PLI, APL, BASIC, LISP, SNOBOL, PASCAL, ADA, MODULA etc. Exemplo de comando: Y = 3 + X;

Ordena que a constante 3 seja somado ao valor da varivel X e que o resultado seja armazenado como novo valor da varivel Y.

Obs.: C considerada uma linguagem de mdio nvel.


34

Sistema Operacional (SO)


um programa especial que controla e coordena todas as operaes bsicas de um computador. Ele controla a execuo de outros programas e pode proporcionar funes como: controle de entrada e sada de dados; alocao de memria; gerenciamento de dados, etc ...

Os programas que compem os SOs so, na maioria dos casos, escritos em linguagens de nvel mais baixo, fazendo com que eles sejam mais rpidos e eficientes no gerenciamento de recursos do hardware.

35

Sistema Operacional (SO)


Os SOs podem ser classificados em: Monousurio: somente um usurio pode processar dados por vez na CPU; Multiusurio: vrios usurios podem acessar ao mesmo tempo a CPU de um sistema; Monotarefa: somente um programa de cada vez executado pela CPU. Multitarefa: vrios programas podem ser executados de maneira concorrente pela CPU (eles concorrem pela mesma CPU).
36

Algoritmos - Introduo

O uso de algoritmos surgiu como uma forma de indicar o caminho para a soluo dos mais variados problemas. Dado um problema, as principais funes de um programador so:

Entender perfeitamente o problema Escolher mtodos para sua soluo Desenvolver um algoritmo baseado nos mtodos Codificar o algoritmo na linguagem de programao disponvel
37

Algoritmos - Introduo

A parte mais importante da tarefa de programar a construo de algoritmos. Segundo Niklaus Wirth:

Programao a arte de construir e formular algoritmos de uma forma sistemtica Algoritmos + Estruturas de Dados = Programas
38

Como estudar algoritmos?

O aprendizado de algoritmos no se consegue a no ser atravs de muitos exerccios.

Algoritmos no se aprendem:

Copiando algoritmos Estudando algoritmos

Algoritmos s se aprendem:

Construindo algoritmos Testando algoritmos


39

Algoritmos - Conceitos

Ao: um evento que ocorre num perodo de tempo finito, estabelecendo um efeito intencionado e bem definido.
Ex.: Colocar o livro em cima da mesa; Atribuir o valor 3,1416 em uma varivel;

Observao: toda ao deve ser executvel em um tempo finito (do instante t0 at o instante t1);

O que realmente interessa o efeito produzido na execuo da ao; Pode-se descrever o efeito de uma ao comparando o estado no instante t0 com o estado no instante t1.

40

Algoritmos - Conceitos

Estado de um dado sistema de objetos o conjunto de propriedades desses objetos que so relevantes em uma situao considerada. Ex.: Livro na estante ou sobre a mesa;
Conjunto de valores das variveis do programa num certo instante da execuo;

41

Algoritmos - Conceitos

Processo: um evento considerado como uma seqncia temporal de (sub) aes, cujo efeito total igual ao efeito acumulado dessas (sub) aes. Observao: Pode-se, geralmente, considerar um mesmo evento como uma ao ou como um processo, dependendo se o interesse est em simplesmente no efeito total (da ao) ou se interessa um ou mais estados intermedirios (do processo). Em outras palavras, se h interesse, uma ao pode ser geralmente detalhada em um processo.
42

Algoritmos - Conceitos

Padro de Comportamento : em todo o evento pode-se reconhecer um padro de comportamento, isto , cada vez que o padro de comportamento seguido, o evento ocorre.

Ex.: seja a seguinte descrio: Uma dona-de-casa descasca as batatas para o jantar traz a cesta com batatas do poro; traz a panela do armrio; descasca as batatas; devolve a cesta ao poro;

43

Algoritmos - Conceitos
Essa descrio pode ser usada para descrever eventos distintos (dias diferentes, batatas diferentes etc.). Isso s possvel porque os eventos possuem o mesmo padro de comportamento. O efeito de um evento fica totalmente determinado pelo padro de comportamento e eventualmente pelo estado inicial.

44

Algoritmos - Conceitos

Algoritmo: a descrio de um padro de comportamento, expressado em termos de um repertrio bem definido e finito de aes primitivas que, com certeza, podem ser executadas. Um algoritmo possui carter imperativo, razo pela qual uma ao em um algoritmo chamada de comando.
Ex.: algoritmo para descascar batatas para o jantar: traga a cesta com batatas do poro; traga a panela do armrio; descasque as batatas; devolva a cesta ao poro;

45

Algoritmos - Conceitos

Um algoritmo (ou programa) apresenta dois aspectos complementares:

Aspecto esttico: a representao concreta do algoritmo atravs de um texto contendo comandos que devem ser executados numa ordem prescrita (atemporal). Aspecto dinmico: que a execuo do algoritmo no tempo.

O problema central da computao consiste em relacionar esses dois aspectos, isto , consiste no entendimento (visualizao) das estruturas dinmicas das possveis execues do algoritmo a partir da estrutura esttica do seu texto.
46

Algoritmos - Conceitos

A restrio a um nmero limitado de estruturas de controle (de execuo dos comandos do algoritmo) permite reduzir o abismo existente entre o aspecto esttico e o dinmico do algoritmo. S so usadas trs estruturas de controle:

Seqncia Simples Alternativa Repetio

A arte de programar consiste na arte de organizar e dominar a complexidade (Dijkstra)

47

Algoritmos - Conceitos
A generalizao do algoritmo para descascar batatas para o jantar pode ser: traga a cesta com batatas do poro; traga a panela do armrio; se saia clara ento coloque avental; enquanto nmero de batatas insuficiente faa descasque uma batata; devolva a cesta ao poro;

Um algoritmo deve ser determinstico, isto , dadas as mesmas condies iniciais, deve produzir em sua execuo, os mesmos resultados. S interessam os algoritmos executveis em tempo finito.
48

Algoritmos Formas de representao

Dentre as formas de representao de algoritmos mais conhecidas, sobressaltam:


A Descrio Narrativa O Fluxograma Convencional O Diagrama de Chapin A Pseudolinguagem

49

Descrio Narrativa

Nesta forma de representao os algoritmos so expressos diretamente em linguagem natural.

Como por exemplo, tm-se os algoritmos seguintes:


Troca de um pneu furado:

Afrouxar ligeiramente as porcas Suspender o carro Retirar as porcas e o pneu Colocar o pneu reserva Apertar as porcas Abaixar o carro Dar o aperto final nas porcas
50

Descrio Narrativa
Clculo da mdia de um aluno:

Obter as notas da primeira e da segunda prova Calcular a mdia aritmtica entre as duas Se a mdia for maior ou igual a 6, o aluno foi aprovado, seno ele foi reprovado.

Obs:Esta representao pouco usada na prtica porque o uso de linguagem natural muitas vezes d oportunidade a ms interpretaes, ambigidades e imprecises.
51

Fluxograma

Representao grfica de algoritmos onde formas geomtricas diferentes implicam aes (instrues, comandos) distintos. Tal propriedade facilita o entendimento das idias contidas nos algoritmos.

52

Fluxograma ou Diagrama de Blocos


Principais formas geomtricas usadas em fluxogramas.

= Incio e final do fluxograma .

= Operao de entrada de dados


= Operao de sada de dados em impressora = Operao de sada de dados em vdeo = Operaes de atribuio
53

Fluxograma
= Deciso

= Seta do fluxo de dados

= Conector utilizado quando preciso particionar o diagrama, colocando uma letra ou nmero no smbolo para indentificar os pares da conexo
54

Fluxograma
A figura a seguir mostra a representao do algoritmo de clculo da mdia de um aluno sob a forma de um fluxograma.

55

Diagrama de Chapin

O diagrama foi criado por Ned Chapin Substituir o fluxograma tradicional por um diagrama que apresenta uma viso hierrquica e estruturada da lgica do programa

56

Diagrama de Chapin

A figura abaixo apresenta um exemplo do tipo de diagrama de Chapin para o algoritmo de clculo da mdia de um aluno.

57

Pseudolinguagem

Esta forma de representao de algoritmos, tambm conhecida como pseudocdigo, portugus estruturado ou portugol, bastante rica em detalhes e, por assemelhar-se bastante forma em que os programas so escritos, encontra muita aceitao, sendo portanto a forma de representao de algoritmos que ser adotada nesta disciplina.

Esta representao suficientemente geral para permitir que a traduo de um algoritmo nela representado para uma linguagem de programao especfica seja praticamente direta.

58

Pseudolinguagem

Representao de um Algoritmo na Forma de Pseudolinguagem :


principal { <declarao_de_variveis> <comandos> }

59

Pseudolinguagem
A seguir mostrado a representao do algoritmo de clculo da mdia de um aluno na forma de um pseudocdigo
principal { real n1, n2, media; leia(n1, n2); media (n1 + n2)/2; se (media >= 6) { imprima ("Aprovado"); } seno { imprima ("Reprovado"); } }
60

Prxima aula...

Conceito de tipos de dados;


Variveis; Operadores; Comandos de entrada e sada...
61

Laboratrio de Programao DCC 120


Introduo e Conceitos Bsicos

Informaes Gerais

Total de Crditos: 2
Teste de Verificao de Conhecimento (TVC): 3 Mdia: 60

Site da disciplina: https://sites.google.com/site/algoritmosufjf/


Neste site voc encontrar:

Material Didtico; Data das provas; Listas de Exerccio; Horrio e site de Monitoria; Links diversos etc.

Segunda Chamada

O que ? a prova que voc poder requerer no caso de perder uma das avaliaes. Pode substituir uma prova j realizada? No. A prova s substitui uma avaliao que o aluno tenha faltado. No h provas substitutivas em Algoritmos / Laboratrio de Programao I.
64

Segunda Chamada - Regras


Caso 1
O aluno que perder uma das avaliaes tem direito, sem a necessidade de justificativa, a fazer segunda chamada ao final do perodo letivo, sobre contedo acumulado.

Caso 2
O professor responsvel pela disciplina poder conceder segunda chamada ao aluno ausente em quaisquer das avaliaes de conhecimento, desde que o mesmo apresente requerimento, no prazo mximo de dois dias teis, com a devida justificativa de acordo com a legislao em vigor. Sendo julgada procedente a justificativa, a segunda chamada ser designada pelo Professor, e versar sobre os mesmos tpicos da avaliao no realizada. Do indeferimento caber o recurso ao chefe de Departamento, no prazo de dois dias teis. Como proceder?

Onde: Secretaria do DCC das 14h as 17h Quando: At dois dias teis aps a aplicao da prova O que: Entregar requerimento preenchido e anexar justificativa. Resultado do requerimento: Ser divulgado no site da disciplina Prova: Data e hora sero divulgados aps o processamento dos requerimentos.

65

Informaes Gerais

Bibliografia Bsica:

GUIMARES, A. M. Algoritmos e estruturas de dados. Rio de Janeiro: LTC, 1994. KERNIGHAN, BRIAN W., RITCHIE, DENNIS M. C: A linguagem de programao padro. Rio de Janeiro: Campus, 1989.

Bibliografia Complementar:

EVARISTO, JAIME. Aprendendo a Programar Programando na Linguagem C. Edio Digital.


66

Objetivos

Representar uma sequncia de aes a serem realizadas para obter uma resposta de um determinado problema usando uma linguagem de programao Base Terica: Disciplina de Algoritmos

67

Linguagem de Programao

um conjunto de regras sintticas e semnticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados sero armazenados ou transmitidos e quais aes devem ser tomadas sob vrias circunstncias.

68

Linguagem de Programao

Lista de 2500 (!) linguagens de programao

http://people.ku.edu/~nkinners/LangList/Extras/langlist.htm

Linha do tempo com aproximadamente 50 linguagens de programao

http://www.levenez.com/lang/lang.pdf

69

Linguagem C

Linguagem de programao que ser utilizada durante a disciplina: linguagem C As bases da linguagem C foram desenvolvidas entre os anos 1969-1973, em paralelo com o desenvolvimento do sistema operacional Unix. O perodo mais criativo ocorreu em 1972 http://cm.bell-labs.com/cm/cs/who/dmr/chist.html

70

Linguagem C

A linguagem C amplamente utilizada, principalmente no meio acadmico O sucesso do sistema operacional Unix auxiliou na popularizao do C A linguagem C considerada simples

71

Sistema Operacional - Linux


Sistema instalado nos computadores: Linux Criado inicialmente como um hobby pelo estudante Linus Torvalds, na Universidade de Helsinki (Finlndia). Linus tinha um interesse especial pelo Sistema Operacional Minix, baseado no sistema Unix

72

Sistema Operacional - Linux


1991 : verso 0.02 1994 : verso 1.0 O cdigo do ncleo (kernel) aberto: gratuito e disponvel a todos Com base no kernel diversas distribuies podem ser encontradas: Ubuntu, Debian, Mandriva, Fedora ... http://www.linux.org/

73

Programas de computadores

Programas devem ter uma finalidade especfica:


Games Processadores de Texto Navegadores (Browsers) Etc.

Programa = conjunto de instrues que podem ser executadas pelo computador, de tal forma que a execuo de subconjuntos destas instrues permitem a realizao de aes mais genricas.
74

Lgica de programao

Desenvolvimento de um programa requer a utilizao de um raciocnio mpar em relao aos raciocnios utilizados na soluo de problemas de outros campos do saber Para resolver um determinado problema necessrio que encontremos uma sequncia de instrues cuja execuo resulte na soluo da questo Programa = Algoritmo que pode ser executado em um computador Lgica de Programao = conjunto de raciocnios utilizados para o desenvolvimento de algoritmos (e, portanto, de programas)
75

IDE - Integrated Development Environment

Ambiente Integrado de Desenvolvimento: programa de computador que rene caractersticas e ferramentas de apoio ao desenvolvimento de software com o objetivo de agilizar este processo. Editor, compilador, depurador, etc.

76

IDE CodeBlocks

CodeBlocks: IDE disponvel para Linux e Windows http://www.codeblocks.org/downloads Download gratuito

77

IDE CodeBlocks

78

IDE CodeBlocks
Criando um Programa.

79

IDE CodeBlocks

80

IDE CodeBlocks

81

IDE CodeBlocks

82

IDE CodeBlocks

83

IDE CodeBlocks

84

IDE CodeBlocks

85

IDE CodeBlocks

86

Criando seu primeiro programa

A gerao do programa executvel a partir do programa fonte obedece a uma seqncia de operaes.

Editor ( mdulo fonte em C) Compilador ( gera o arquivo objeto) Lincador ( gera o executvel)

87

Viso Geral

Editor ( mdulo fonte em C)

Ex.: first.c

Compilador ( gera o arquivo objeto)

Ex.: first.o

Lincador ( gera o executvel)

Ex.: first.exe

88

Estrutura de um Programa em C

Toda linguagem de programao deve seguir uma sintaxe. A sintaxe so regras detalhadas para cada construo vlida. Estas regras esto relacionadas com os tipos, as declaraes, as funes e as expresses.

Os tipos definem as propriedades dos dados manipulados em um programa. As declaraes expressam as partes do programa, podendo dar significado a um identificador, alocar memria, definir contedo inicial, definir funes. As funes especificam as aes que um programa executa quando roda.
89

Programa Mnimo em C

Todo programa em C deve conter uma funo identificada por main (cuja traduo principal). Esta ser sempre a primeira funo do programa a ser executada
main( ) { }

90

Você também pode gostar