61
Fundamentos de Fundamentos de Programação Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. R INTRODUÇÃO A INFORMÁTICA •O COMPUTADOR •SISTEMA OPERACIONAL •O HARDWARE

Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Embed Size (px)

Citation preview

Page 1: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Fundamentos de Fundamentos de ProgramaçãoProgramação

Copyright, 2011 © Alexandre C. B. Ramos

Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA

•O COMPUTADOR•SISTEMA OPERACIONAL

•O HARDWARE

Page 2: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

I - Introdução à I - Introdução à InformáticaInformática1. O Computador1. O Computador

• Quando falamos de computador, a Quando falamos de computador, a primeira imagem que vem a nossa primeira imagem que vem a nossa mente é o mente é o HardwareHardware entretanto este, entretanto este, sozinho, não tem nenhuma utilidade.sozinho, não tem nenhuma utilidade.

• Para que possamos utilizar um Para que possamos utilizar um computador é necessário que computador é necessário que tenhamos tanto o equipamento tenhamos tanto o equipamento quanto os programas, isto é, o quanto os programas, isto é, o SoftwareSoftware..

Page 3: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

2. Sistema Operacional2. Sistema Operacional• Um Sistema Operacional - SO é um

software que permite ao ser humano utilizar o hardware. Além de funcionar como interface homem/máquina, facilitando o uso do computador, o SO permite gerenciar os recursos básicos do computador (hardware, software e dados).

Page 4: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

2.1 Qual a importância do 2.1 Qual a importância do SO para o aluno?SO para o aluno?• Futuros Gerentes, Consultores Futuros Gerentes, Consultores

Analistas de Sistemas: poderão Analistas de Sistemas: poderão ser solicitados a selecionar ou ser solicitados a selecionar ou recomendar SO; erecomendar SO; e

• Em outros casos: o conhecimento do Em outros casos: o conhecimento do funcionamento do SO facilitam o funcionamento do SO facilitam o desenvolvimento de qualquer desenvolvimento de qualquer sistema, além do mais programadores sistema, além do mais programadores eficientes devem pelo menos eficientes devem pelo menos compreender a base do SO.compreender a base do SO.

Page 5: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

2.2 O Sistema Operacional e o 2.2 O Sistema Operacional e o usuáriousuário A partir da criação do A partir da criação do

SO, não mais existe a SO, não mais existe a necessidade de o necessidade de o programador se envolver programador se envolver com a complexidade do com a complexidade do hardware para poder hardware para poder trabalhar, ou seja, atrabalhar, ou seja, a

parte física do computador tornou-se parte física do computador tornou-se transparente para o usuário, que passa a transparente para o usuário, que passa a enxergar a máquina como sendo apenas o enxergar a máquina como sendo apenas o SO, como se o hardware não existisse. A SO, como se o hardware não existisse. A essa visão modular e abstrata dá-se o nome essa visão modular e abstrata dá-se o nome de Máquina Virtual.de Máquina Virtual.

Page 6: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

3. Hardware3. Hardware

Um computador é Um computador é constituído por um constituído por um conjunto de conjunto de componentes componentes interligados:interligados:processadores, memória, registradores, processadores, memória, registradores, além de outros dispositivos físicos.além de outros dispositivos físicos.Esses componentes podem ser agrupados Esses componentes podem ser agrupados em três subsistemas básicos: UCP, em três subsistemas básicos: UCP, Memória e Periféricos.Memória e Periféricos.

Page 7: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

3.1 Unidade Central de 3.1 Unidade Central de Processamento - UCPProcessamento - UCP

• Sua função é unificar o sistema Sua função é unificar o sistema controlando as funções realizadas controlando as funções realizadas por cada unidade funcional.por cada unidade funcional.

• A UCP também executa todos os A UCP também executa todos os programas do programas do sistema que estão sistema que estão armazenados na armazenados na memória principal.memória principal.

Page 8: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

3.2 Memória Principal3.2 Memória Principal

• Ou (primária ou real), é Ou (primária ou real), é a parte do computador a parte do computador onde são armazenadas onde são armazenadas as instruções e dados. as instruções e dados.

• Ela é composta por unidades de Ela é composta por unidades de acesso chamadas células, sendo acesso chamadas células, sendo cada célula composta por um cada célula composta por um determinado número de bits (binary determinado número de bits (binary digit). O bit é a unidade básica de digit). O bit é a unidade básica de memória, podendo assumir os memória, podendo assumir os valores 0 ou 1.valores 0 ou 1.

Page 9: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

3.2 Memória Principal 3.2 Memória Principal

• Muitos computadores Muitos computadores utilizam o byte (8 bits) utilizam o byte (8 bits) como tamanho de célula, como tamanho de célula, porém encontramos porém encontramos computadores com células de 16, 32, e 64 computadores com células de 16, 32, e 64 bits.bits.

• O acesso ao conteúdo de uma célula é O acesso ao conteúdo de uma célula é realizado através da especificação de um realizado através da especificação de um número chamado endereço. Quando um número chamado endereço. Quando um programa deseja ler ou escrever um dado programa deseja ler ou escrever um dado numa célula, deve primeiro especificar qual numa célula, deve primeiro especificar qual o endereço de memória desejado, para o endereço de memória desejado, para depois realizar a operação.depois realizar a operação.

Page 10: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

3.2 Memória Principal3.2 Memória Principal• Quanto a volatilidade as memórias podem Quanto a volatilidade as memórias podem

ser:ser:

• RAM - Random Access Memory, memória RAM - Random Access Memory, memória volátil e que constitui quase a totalidade de volátil e que constitui quase a totalidade de memória principal de um computador; ememória principal de um computador; e

• ROM - Read Only Memory, memória não ROM - Read Only Memory, memória não volátil cujo o conteúdo já vem pré-gravado volátil cujo o conteúdo já vem pré-gravado do fabricante e se mantém mesmo quando o do fabricante e se mantém mesmo quando o computador é desligado. Uma variação da computador é desligado. Uma variação da ROM é a EPROM- Erasable Programmable ROM é a EPROM- Erasable Programmable ROM, que permite a regravação após a ROM, que permite a regravação após a exposição de luz ultravioleta.exposição de luz ultravioleta.

Page 11: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

4. Dispositivos de Entrada e 4. Dispositivos de Entrada e SaídaSaída

• São dispositivos utilizados para permitir São dispositivos utilizados para permitir a comunicação entre o computador e o a comunicação entre o computador e o mundo externo. Através desses mundo externo. Através desses dispositivos, a UCP e a memória dispositivos, a UCP e a memória principal podem se comunicar, tanto principal podem se comunicar, tanto com usuários quanto com memórias com usuários quanto com memórias secundárias, a fim de realizar qualquer secundárias, a fim de realizar qualquer tipo de processamento.tipo de processamento.

Page 12: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

4. Dispositivos de Entrada e 4. Dispositivos de Entrada e SaídaSaída

Os dispositivos de entrada e saída (E/S) Os dispositivos de entrada e saída (E/S) podem ser divididos em duas podem ser divididos em duas categorias:categorias:

• 1. Dispositivos que são usados como 1. Dispositivos que são usados como memória secundária, como discos e memória secundária, como discos e fitas magnéticas, se caracterizam por fitas magnéticas, se caracterizam por armazenar de três a quatro vezes mais armazenar de três a quatro vezes mais informações que a memória principal, informações que a memória principal, são de baixo custo, mas possuem são de baixo custo, mas possuem tempo de acesso de quatro a seis tempo de acesso de quatro a seis vezes maior que o tempo de acesso da vezes maior que o tempo de acesso da memória principal.memória principal.

Page 13: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

4. Dispositivos de Entrada e 4. Dispositivos de Entrada e SaídaSaída

• 2. Dispositivos que servem como 2. Dispositivos que servem como interface homem-máquina, como interface homem-máquina, como teclados, monitores de vídeo, teclados, monitores de vídeo, impressoras, ploters entre outros. O impressoras, ploters entre outros. O desenvolvimento de interfaces mais desenvolvimento de interfaces mais amigáveis permite que as pessoas amigáveis permite que as pessoas sem conhecimento específico sobre sem conhecimento específico sobre informática possam utilizar o informática possam utilizar o computador.computador.

Page 14: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

II - Programação e solução II - Programação e solução de problemasde problemas

Para que o computador possa Para que o computador possa ajudar a resolver os nossos ajudar a resolver os nossos problemas de uma forma eficiente problemas de uma forma eficiente devemos programa-lo. O objeto final devemos programa-lo. O objeto final da programação é um programa, da programação é um programa, que é a especificação da seqüência que é a especificação da seqüência de passos que a máquina deve de passos que a máquina deve executar para alcançar a solução do executar para alcançar a solução do problema. problema.

Page 15: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

1. Usando o Computador1. Usando o Computador• A tarefa de programação pode A tarefa de programação pode

compreender os seguintes passos:compreender os seguintes passos:

• 1. Descrever o problema de uma forma 1. Descrever o problema de uma forma clara e precisa, especificando bem QUAL clara e precisa, especificando bem QUAL É O PROBLEMA;É O PROBLEMA;

• 2. Descobrir uma solução, transformando 2. Descobrir uma solução, transformando O QUE É desejado em COMO chegar ao O QUE É desejado em COMO chegar ao que se deseja na forma de uma rotina que se deseja na forma de uma rotina executável;executável;

Page 16: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

• 3. Escrever a solução numa linguagem de 3. Escrever a solução numa linguagem de programação de modo que possa ser programação de modo que possa ser executada NUM COMPUTADOR; eexecutada NUM COMPUTADOR; e

• 4. Verificar a correção do programa, 4. Verificar a correção do programa, mostrando que o programa satisfaz os mostrando que o programa satisfaz os requisitos do problema. requisitos do problema.

1. Usando o Computador1. Usando o Computador

Page 17: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

1. Usando o Computador1. Usando o Computador

Exercício: seja a seguinte Exercício: seja a seguinte situação:situação:

““Durante uma viagem Durante uma viagem de automóvel um de automóvel um

motorista percebeu que o motorista percebeu que o pneu dianteiro do seu veículo está pneu dianteiro do seu veículo está furado.”descrever o problema e a furado.”descrever o problema e a solução indicando O QUE E COMO solução indicando O QUE E COMO FAZER para resolver o problema.FAZER para resolver o problema.

Page 18: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

2. Algoritmos2. Algoritmos

• O termo ALGORITMO vem da O termo ALGORITMO vem da palavra ÁRABE ALKHARIZMI, palavra ÁRABE ALKHARIZMI, originária do nome de umoriginária do nome de ummatemático persa chamado: ABU JA’FAR matemático persa chamado: ABU JA’FAR MOHAMMED IBN MUSA AL KHOWARIZMI, MOHAMMED IBN MUSA AL KHOWARIZMI, autor de um livro-texto sobre matemática autor de um livro-texto sobre matemática no século IX. no século IX.

Page 19: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

2. Algoritmos2. Algoritmos• Um ALGORITMO é uma receita para Um ALGORITMO é uma receita para

um processo computacional e consiste um processo computacional e consiste de uma série de operações primitivas, de uma série de operações primitivas, interconectadas devidamente, sobre interconectadas devidamente, sobre um conjunto de objetos (Constantes e um conjunto de objetos (Constantes e Variáveis)Variáveis)

Constante: um objeto cujo valor não se altera ao longo do algoritmo e pode ou não ter um nomeVariável: objeto que tem um nome e um valor e que pode ser alterado pelo algoritmo durante sua execuçãoOperações primitivas: eqüivale a um pequeno conjunto de operações necessárias e suficientes para resolver um problema computacional

Page 20: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

2. Algoritmos2. Algoritmos

Exemplo de Operações Primitivas:Exemplo de Operações Primitivas:

Obtenha(Nome,Salario): carregar as Obtenha(Nome,Salario): carregar as informações nome e salário para a memória informações nome e salário para a memória do computador;do computador;

Forneça(Nome,Salario): enviar as informações Forneça(Nome,Salario): enviar as informações nome e salário da memória para o vídeo ou nome e salário da memória para o vídeo ou impressora;impressora;

Guarde(Nome,Salario): enviar as informações Guarde(Nome,Salario): enviar as informações nome e salário da memória para um nome e salário da memória para um dispositivo de armazenagem;dispositivo de armazenagem;

Page 21: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

2. Algoritmos2. AlgoritmosRecupere(Nome,Salario): enviar as informações Recupere(Nome,Salario): enviar as informações

nome e salário do dispositivo de armazenagem nome e salário do dispositivo de armazenagem para a memória do computador;para a memória do computador;

Atribua(“João da Silva”, Nome): fazer com que a Atribua(“João da Silva”, Nome): fazer com que a variável nome receba o valor “João da Silva”;variável nome receba o valor “João da Silva”;

Calcule(Total Bruto - Total de Descontos): avalia Calcule(Total Bruto - Total de Descontos): avalia uma expressão aritmética;uma expressão aritmética;

Avalie(Total Líquido < Total de Descontos): avalia Avalie(Total Líquido < Total de Descontos): avalia uma expressão lógica, enviando um resultado uma expressão lógica, enviando um resultado que pode ser verdadeiro(+) ou falso(-);que pode ser verdadeiro(+) ou falso(-);

Page 22: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

3. Fluxogramas3. Fluxogramas

Corresponde a uma forma gráfica Corresponde a uma forma gráfica muito comum utilizada para muito comum utilizada para representar um algoritmo, indicando representar um algoritmo, indicando a seqüência em que as primitivas a seqüência em que as primitivas devem ser executadas.devem ser executadas.

Page 23: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

3. Fluxogramas3. Fluxogramas

Primitivas Gráficas:Primitivas Gráficas:

Início/Fim do Início/Fim do programaprograma

ProcessamentoProcessamento

DecisãoDecisão

Page 24: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

3. Fluxogramas3. Fluxogramas

Em um fluxograma as operações Em um fluxograma as operações primitivas aparecem envolvidas por primitivas aparecem envolvidas por retângulos, com exceção da primitiva retângulos, com exceção da primitiva AVALIEAVALIE, a qual é envolvida por um , a qual é envolvida por um losango. As operações losango. As operações são interligadas por SETAS são interligadas por SETAS (-->).(-->).

Page 25: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

3. Fluxogramas3. Fluxogramas

Exemplo:Exemplo:

Dados dois números inteiros Dados dois números inteiros positivos A e B, calcular o valor positivos A e B, calcular o valor absoluto de A - B.absoluto de A - B.Resposta em forma de texto: nesse caso devemos Resposta em forma de texto: nesse caso devemos realizar os seguintes passos:realizar os seguintes passos:

1. Obter os valores de A e B;1. Obter os valores de A e B;

2. Verificar qual deles é o maior;2. Verificar qual deles é o maior;

3. Subtrair o número menor do número maior; e 3. Subtrair o número menor do número maior; e

4. Apresentar o valor resultante.4. Apresentar o valor resultante.

Page 26: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

3. Fluxogramas3. FluxogramasResposta em forma gráfica:Resposta em forma gráfica: Início

Obtenha A,B

A < BC <-- B - A C <-- A - B

Forneça C

Fim

Page 27: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

3. Fluxogramas - 3. Fluxogramas - ExercíciosExercícios

1. Calcular o produto de 10 por 7.1. Calcular o produto de 10 por 7.Início

PROD <-- 10*7

Fim

Forneça PROD

Page 28: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Linguagem CLinguagem C

Alexandre C. B. RamosAlexandre C. B. Ramos

Page 29: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Linguagem CLinguagem C

Tópicos de estudoTópicos de estudo Entrada e saída de dadosEntrada e saída de dados Bases numéricasBases numéricas Estruturas de seleçãoEstruturas de seleção Estruturas de repetiçãoEstruturas de repetição Matrizes/vetoresMatrizes/vetores Operadores lógicosOperadores lógicos Funções internas e subprogramasFunções internas e subprogramas

Page 30: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

BibliografiaBibliografia

BásicaBásica Schildt, Herbert.Turbo C - Guia do Usuário. McGraw-HillSchildt, Herbert.Turbo C - Guia do Usuário. McGraw-Hill

ComplementarComplementar Schildt, Herbert.C completo e total. McGraw-HillSchildt, Herbert.C completo e total. McGraw-Hill Kelly-Bootle, Stan.Dominando o Turbo C. Editora Kelly-Bootle, Stan.Dominando o Turbo C. Editora

Ciência Moderna.Ciência Moderna. Deitel & Deitel. C++ Como Programar. Bookman.Deitel & Deitel. C++ Como Programar. Bookman.

Page 31: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Ambiente de programaçãoAmbiente de programação

Para a edição de programas, compilação e execução Para a edição de programas, compilação e execução utilizaremos o ambiente Turbo C, especificamente a IDE utilizaremos o ambiente Turbo C, especificamente a IDE (Integrated Design Environment) que funciona a partir dos (Integrated Design Environment) que funciona a partir dos sistemas operacionais DOS e WindowsXX.sistemas operacionais DOS e WindowsXX.A IDE é uma interface de desenvolvimento prática e A IDE é uma interface de desenvolvimento prática e eficiente que vai facilitar bastante o desenvolvimento dos eficiente que vai facilitar bastante o desenvolvimento dos programas em C. programas em C. Maiores detalhes do funcionamento da IDE, principais Maiores detalhes do funcionamento da IDE, principais menus e comandos de edição e compilação estão disponíveis menus e comandos de edição e compilação estão disponíveis em Turbo C - Guia do Usuário.em Turbo C - Guia do Usuário.

Page 32: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Conceitos básicos da Conceitos básicos da linguagem Clinguagem C

Page 33: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

IdentificadoresIdentificadoresUsados para nomear as variáveis, as funções e os rótulos Usados para nomear as variáveis, as funções e os rótulos dos programas. A linguagem C:dos programas. A linguagem C:

reconhece os 31 primeiros caracteres do nome; ereconhece os 31 primeiros caracteres do nome; e diferencia as maiúsculas e as minúsculas.diferencia as maiúsculas e as minúsculas.

O identificador sempre começa por letraO identificador sempre começa por letraNormalmente: maiúsculas Normalmente: maiúsculas constantes constantes

minúsculas minúsculas variáveis variáveisExemplo: Corretos ErradosExemplo: Corretos Errados

cont 1contcont 1cont

teste23 alô!teste23 alô!

Alto_balanco alto..balançoAlto_balanco alto..balanço

Page 34: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Palavras reservadasPalavras reservadas

O nome deve ser diferente das seguintes palavras reservadas:O nome deve ser diferente das seguintes palavras reservadas:

intint charchar floatfloat voidvoid enumenum

shortshort longlong signedsigned unsignedunsigned doubledouble

structstruct unionunion typedeftypedef sizeofsizeof autoauto

registerregister staticstatic externextern constconst volatilevolatile

gotogoto ifif elseelse switchswitch casecase

defaultdefault breakbreak whilewhile dodo forfor

continuecontinue returnreturn

Page 35: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Paralelo entre Pascal e CParalelo entre Pascal e CProgram Area; # include <stdio.h> Program Area; # include <stdio.h>

uses crt; void main ( )uses crt; void main ( )

var A, L: real; { var A, L: real; {

Begin float A, L;Begin float A, L;

write (“Digite o lado: “); printf (“ Digite o lado: ”);write (“Digite o lado: “); printf (“ Digite o lado: ”);

readln (L); scanf (“%f”, L);readln (L); scanf (“%f”, L);

if L < 0 then if L < 0 if L < 0 then if L < 0

write (“ O lado deve ser positivo!”) printf (“ O lado deve ser positivo!”);write (“ O lado deve ser positivo!”) printf (“ O lado deve ser positivo!”);

else else else else

begin {begin {

A:= L * L; A = L * L;A:= L * L; A = L * L;

writeln (“ A área é: “, A); printf (“ A área é: %f”,A);writeln (“ A área é: “, A); printf (“ A área é: %f”,A);

end; }end; }

End. }End. }

Page 36: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Tipos e tamanhosTipos e tamanhosTipos simples:Tipos simples:

char: caracter (1 byte)char: caracter (1 byte)

int: inteiro (>= 2 bytes dependendo da máquina)int: inteiro (>= 2 bytes dependendo da máquina)

float: ponto flutuante, precisão simples (>= 6 bytes, dep. Máq.)float: ponto flutuante, precisão simples (>= 6 bytes, dep. Máq.)Qualificadores:Qualificadores:

short: se aplica ao tipo intshort: se aplica ao tipo int long: se aplica a int e floatlong: se aplica a int e float

signed: se aplica a char e intsigned: se aplica a char e int unsigned: idem char e intunsigned: idem char e intVariáveisVariáveis

Tipos simples: char, int, float e doubleTipos simples: char, int, float e double

Tipos compostos: estruturas, tabelas, uniões etc.Tipos compostos: estruturas, tabelas, uniões etc.

Domínio de validade: auto, static, extern e register.Domínio de validade: auto, static, extern e register.

Sintaxe: [classe] [qualificador] tipo nome_variavel [=valor];Sintaxe: [classe] [qualificador] tipo nome_variavel [=valor];

Page 37: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

ConstantesConstantesDeclaração simples: Declaração simples:

# define NUM_MAX_CARACT 100# define NUM_MAX_CARACT 100

# define MENSAGEM “alo, alo, Terezinha”# define MENSAGEM “alo, alo, Terezinha”

# define CR ‘\n’# define CR ‘\n’

# undef MENSAGEM# undef MENSAGEMQualificadoresQualificadores

3.14 tipo “double”3.14 tipo “double” 3.14f ou 4.14F tipo “float” 3.14f ou 4.14F tipo “float”

1.3e-3 ou 1.3E-3 tipo double1.3e-3 ou 1.3E-3 tipo double 074 tipo inteiro, em octal 074 tipo inteiro, em octal

3l ou 3L tipo inteiro longo3l ou 3L tipo inteiro longo 255u ou 255U tipo inteiro, sem sinal 255u ou 255U tipo inteiro, sem sinal

3.14l ou 3.14L tipo d”double” longo3.14l ou 3.14L tipo d”double” longo

0x3b ou 0X”b tipo inteiro, hexadecimal0x3b ou 0X”b tipo inteiro, hexadecimal

Page 38: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

ConstantesConstantesDomínio de validade:Domínio de validade:

da definição da constante até o final do arquivo ou até encontrar a diretiva da definição da constante até o final do arquivo ou até encontrar a diretiva #undef da constante#undef da constante

Constantes do tipo caracter devem ser escritas entre apóstrofos Constantes do tipo caracter devem ser escritas entre apóstrofos (por exemplo: `l`, `a`, `x`, `\n`, `\t`)(por exemplo: `l`, `a`, `x`, `\n`, `\t`)Representação de caracteres ASCII não imprimíveis:Representação de caracteres ASCII não imprimíveis:

nova linha = `\n`nova linha = `\n` tabulação = `\t`tabulação = `\t` espaço p/trás = `\b`espaço p/trás = `\b` retorno do carro = `\r`retorno do carro = `\r` página segui nte = `\f `página segui nte = `\f ` barra de fração revertida = `\\`barra de fração revertida = `\\` apóstrofo = `\’`apóstrofo = `\’` null = `\0`null = `\0` bell = ‘\a’bell = ‘\a’ formfeed = `\f `formfeed = `\f ` haspas = `\” `haspas = `\” ` interrogação = `\?`interrogação = `\?` caracter definido pelo seu valor ASCII (em octal) = `\ddd`, ex.: `121`caracter definido pelo seu valor ASCII (em octal) = `\ddd`, ex.: `121` caracter definido pelo seu valor ASCII (em hexa] = `\xdd`, ex.: `\x2a`caracter definido pelo seu valor ASCII (em hexa] = `\xdd`, ex.: `\x2a`

Page 39: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

OperadoresOperadores

Operadores aritméticos (multiplicativos e aditivos):Operadores aritméticos (multiplicativos e aditivos):

+, -, *, /, % (resto de divisão inteira)+, -, *, /, % (resto de divisão inteira)Operadores bit a bit: & (e), | (ou), ^ (ou-exclusivo) Operadores bit a bit: & (e), | (ou), ^ (ou-exclusivo) Operadores de deslocamento: << (esquerda), >> (direita)Operadores de deslocamento: << (esquerda), >> (direita)Operadores relacionais: <,<=, >, >=Operadores relacionais: <,<=, >, >=Operadores de igualdade: ==, !=Operadores de igualdade: ==, !=Operadores lógicos: && (e), || (ou)Operadores lógicos: && (e), || (ou)Operadores unários: *p : conteúdo de pOperadores unários: *p : conteúdo de p &v : endereço de v &v : endereço de v

-e : menos e-e : menos e !e : negação (booleana) de e !e : negação (booleana) de e

~e : complemento bit a bit de e ++v : v = v + 1~e : complemento bit a bit de e ++v : v = v + 1

-v : v = v - 1-v : v = v - 1 v++ : retorna v e depois v = v + 1 v++ : retorna v e depois v = v + 1

v- : etorna v e depois v = v - 1 (tipo)v : converte v para o tipo v- : etorna v e depois v = v - 1 (tipo)v : converte v para o tipo

sizeof(e) : numero de bytes ocupado por esizeof(e) : numero de bytes ocupado por e

sizeof(tipo) : n° de bytes ocupado por um objeto do tipo definidosizeof(tipo) : n° de bytes ocupado por um objeto do tipo definido

Page 40: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

OperadoresOperadores

• Operadores de atribuição: Operadores de atribuição:

=, +=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^==, +=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^=• Operador vírgula: Operador vírgula:

x = y++, z; equivale a y = y + 1; x = zx = y++, z; equivale a y = y + 1; x = z• Operador condicional:Operador condicional:

exp ? exp1 : exp2 exp ? exp1 : exp2

Exemplo: x = (a > b) ? a : b; equivale a:Exemplo: x = (a > b) ? a : b; equivale a:

Se a é maior que b, então x = a; senão x Se a é maior que b, então x = a; senão x = b= b

Page 41: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Precedência e ordem de Precedência e ordem de avaliaçãoavaliação

OperadorOperador AvaliaçãoAvaliação

( ) [ ] -> . ( ) [ ] -> . esq->diresq->dir

! ~ ++ --(tipo) * & sizeof! ~ ++ --(tipo) * & sizeof dir->esqdir->esq

* / % * / % esq->dir esq->dir

+ -+ - esq->dir esq->dir

<<>><<>> esq->dir esq->dir

< <=> >=< <=> >= esq->dir esq->dir

== !=== != esq->dir esq->dir

&& esq->dir esq->dir

^̂ esq->dir esq->dir

|| esq->dir esq->dir

&&&& esq->dir esq->dir

|||| esq->dir esq->dir

? :? : dir -> esqdir -> esq

= += -= etc.= += -= etc. dir -> esqdir -> esq

,, esq-> diresq-> dir

Page 42: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Instruções de controleInstruções de controleObservações preeliminares:Observações preeliminares:

uma instrução é sempre terminada por “ ; “uma instrução é sempre terminada por “ ; “ comentários: /* isto é um comentário */comentários: /* isto é um comentário */ as chaves { e } são usadas para agrupar declarações e instruções em as chaves { e } são usadas para agrupar declarações e instruções em

um bloco, o qual é sintaticamente equivalente a uma única instrução, um bloco, o qual é sintaticamente equivalente a uma única instrução, exemplo: exemplo:

While (n != 2) { /* bloco*/While (n != 2) { /* bloco*/

x = y + z;x = y + z;

n = n / 2;n = n / 2;

}} um bloco nunca termina com };um bloco nunca termina com }; variáveis podem ser declaradas dentro de variáveis podem ser declaradas dentro de

qualquer bloco (e tem validade só dentro do bloco).qualquer bloco (e tem validade só dentro do bloco).

Page 43: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Instrução ifInstrução if

Caso mais simples: if (expressão) instruçãoCaso mais simples: if (expressão) instruçãoCaso completo: if (expressão) instrução;Caso completo: if (expressão) instrução;

else if (expressão) instrução;else if (expressão) instrução;

..........

else instrução;else instrução;

Page 44: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Exemplo

Page 45: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Instrução switchInstrução switch

Sintaxe:Sintaxe:

switch (expressão) {switch (expressão) {

case expr-constante:case expr-constante: instr;instr;

instr;instr;

break;break;

case expr-constante:case expr-constante: instr;instr;

break;break;

default:default: instr;instr;

break;break;

}}

Page 46: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Instrução whileInstrução whileCaso mais simples:Caso mais simples: while (expressão) instr;while (expressão) instr;Caso geral:Caso geral: while (expressão) { instr;while (expressão) { instr;

instr; }instr; }A instrução “break” faz sair da malha “while”. Exemplo:A instrução “break” faz sair da malha “while”. Exemplo:

while (i++ != 10)while (i++ != 10)

{ soma += x[i];{ soma += x[i];

if (soma >= 100.) break; }if (soma >= 100.) break; }A instrução “continue” faz com que a iteração seguinte da A instrução “continue” faz com que a iteração seguinte da malha seja realizada imediatamente, exemplo:malha seja realizada imediatamente, exemplo:

while (i++ < 10) while (i++ < 10)

{if (x[i] == ‘\n’) continue;{if (x[i] == ‘\n’) continue;

y[i] = y[i];y[i] = y[i];

}}

Page 47: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Instrução do/whileInstrução do/while

Caso simples: Caso simples: do instrução; do instrução;

while (expressão);while (expressão);Caso geral: Caso geral: do {do {

instrução;instrução;

..........

instrução;instrução;

}}

while (expressão);while (expressão);As instruções break e continue também são aplicáveis ao As instruções break e continue também são aplicáveis ao do/while.do/while.

Page 48: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Instrução forInstrução forSintaxe:Sintaxe: for (expr1; expr2; expr3) {for (expr1; expr2; expr3) {

instr;instr;

......

instr; }instr; }A instrução “for” é equivalente a:A instrução “for” é equivalente a:

expr1;expr1;

while (expr2) {while (expr2) {

instr;instr;

........

instr;instr;

expr3;expr3; }}As instruções “break” e “continue” também são aplicáveis a As instruções “break” e “continue” também são aplicáveis a malha for.malha for.

Page 49: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Instrução gotoInstrução goto

Sintaxe:Sintaxe:

goto rotulogoto rotulo

......

Rotulo: instr;Rotulo: instr;

instr;instr;

......

Page 50: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

FunçõesFunçõesGeneralidadesGeneralidades

A linguagem C é baseada no conceito de blocos de construção, que são A linguagem C é baseada no conceito de blocos de construção, que são chamados de funções.chamados de funções.

O nome de uma função sofre as mesmas restrições que o nome de uma O nome de uma função sofre as mesmas restrições que o nome de uma variável.variável.

Como também ocorre com as variáveis, um tipo é sempre associado a Como também ocorre com as variáveis, um tipo é sempre associado a uma função (tipo do valor de retorno)uma função (tipo do valor de retorno) tipos básicos: void, char, int, float, doubletipos básicos: void, char, int, float, double qualificadores: short, long, signed, unsigned, exemplo: short int func ()qualificadores: short, long, signed, unsigned, exemplo: short int func ()

Retorno de valor: return expr;Retorno de valor: return expr; Declaração de uma função:Declaração de uma função: float calc (int, float);float calc (int, float); definição de uma função: definição de uma função: foat calc (n, x)foat calc (n, x)

int n; float x;int n; float x;

{corpo da função{corpo da função

}} não se pode definir uma função no interior de um bloco {.....}não se pode definir uma função no interior de um bloco {.....}

Page 51: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Função mainFunção mainO programa principal é uma função cujo nome é “main”O programa principal é uma função cujo nome é “main”A função “main” pode ser do tipo:A função “main” pode ser do tipo: main () main ()

{ ...... }{ ...... }Ou do tipo: main (argc, argv)Ou do tipo: main (argc, argv)

int argc; char *argv;int argc; char *argv;

{ .......... }{ .......... }O valor contido em “argc” corresponde ao número de O valor contido em “argc” corresponde ao número de argumentos recebido da linha de comandoargumentos recebido da linha de comandoPor sua vez, “argv” corresponde à tabela de argumentos da Por sua vez, “argv” corresponde à tabela de argumentos da linha de comando, exemplo: cp arq1 arq2linha de comando, exemplo: cp arq1 arq2

cp: nome do programacp: nome do programa arq1 e arq2 : argumentosarq1 e arq2 : argumentos argc = 3argc = 3 argv = [ “cp”, “arq1” , “arq2”]argv = [ “cp”, “arq1” , “arq2”]

Page 52: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Alocação do espaço de Alocação do espaço de memóriamemóriaClasse autoClasse auto

alocação por “default”alocação por “default” alocação feita no momento da declaraçãoalocação feita no momento da declaração liberação no final do bloco (variável local) ou no final do programa liberação no final do bloco (variável local) ou no final do programa

(variável global)(variável global)Classe staticClasse static

alocação feita na declaraçãoalocação feita na declaração liberação no final do programaliberação no final do programa uma variável local, declarada “static”, guarda seu valor de uma uma variável local, declarada “static”, guarda seu valor de uma

chamada a outra da função (conceito de permanência do valor)chamada a outra da função (conceito de permanência do valor) uma variável global, declarada “static” , só é acessível por funções uma variável global, declarada “static” , só é acessível por funções

contidas dentro do arquivo onde foi declarada (conceito de contidas dentro do arquivo onde foi declarada (conceito de privacidade)privacidade)

Classe externClasse extern a variável é alocada em um outro arquivoa variável é alocada em um outro arquivo

Page 53: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Alocação de espaço de Alocação de espaço de memóriamemória

Classe registerClasse register deve ser empregado somente com as variáveis automáticas (“auto”)deve ser empregado somente com as variáveis automáticas (“auto”) classe de alocação normalmente empregadas para as variáveis utilizadas classe de alocação normalmente empregadas para as variáveis utilizadas

de maneira intensivade maneira intensiva o compilador é livre de atribuir um registrador do processador à variável o compilador é livre de atribuir um registrador do processador à variável

ou de ignorar a solicitaçãoou de ignorar a solicitação não se pode, evidentemente, tentar obter o endereço de uma variável do não se pode, evidentemente, tentar obter o endereço de uma variável do

tipo “register”tipo “register” como regra geral, as variáveis de classe “register” são do tipo “char” ou como regra geral, as variáveis de classe “register” são do tipo “char” ou

“int”“int”

Page 54: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Definição de tabelas Definição de tabelas (arrays)(arrays)Uma tabela é um conjunto de elementos de mesmo tipo.Uma tabela é um conjunto de elementos de mesmo tipo.Declaração:Declaração:

[classe] [qualificador] tipo tabela [n° elementos];[classe] [qualificador] tipo tabela [n° elementos];Inicialização:Inicialização:

tipo tabela[ ] = {val1, val2, ...}tipo tabela[ ] = {val1, val2, ...}Exemplos:Exemplos:

char v[10];char v[10]; static double x[20];static double x[20]; int stat[ ] = { -1, -1, 0, 1};int stat[ ] = { -1, -1, 0, 1};

Acesso a um elemento de uma tabela, exemplos:Acesso a um elemento de uma tabela, exemplos: y = x[10];y = x[10]; ss = stat [2*i-3];ss = stat [2*i-3];

Tabelas multidimensionaisTabelas multidimensionais int tab[2] [3] [4]; ou double pos[3] [3];int tab[2] [3] [4]; ou double pos[3] [3];

Page 55: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

EstruturasEstruturasUma estrutura corresponde a um conjunto de uma ou mais Uma estrutura corresponde a um conjunto de uma ou mais variáveis, eventualmente de tipos diferentes e agrupadas sob variáveis, eventualmente de tipos diferentes e agrupadas sob um mesmo nomeum mesmo nomeExemplos de declarações de estruturas (“struct” define o Exemplos de declarações de estruturas (“struct” define o tipo estrutura)tipo estrutura)

declara a estrutura “x” (tipo “num_complexo”), alocando para a declara a estrutura “x” (tipo “num_complexo”), alocando para a mesma 2 campos do tipo double:mesma 2 campos do tipo double:

struct num_complexo { double parte_real;struct num_complexo { double parte_real;

double parte_imag; } x;double parte_imag; } x; declara a estrutura “data”, alocando para a mesma inteiros:declara a estrutura “data”, alocando para a mesma inteiros:

struct { int dia;struct { int dia;

int mês;int mês;

int ano; } data;int ano; } data;Acesso aos membros de uma estrutura:Acesso aos membros de uma estrutura:

data.dia = 18;data.dia = 18;

Page 56: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

Exemplos de programa em Exemplos de programa em CC

Converte o caracter de entrada em octal;Imprime o tamanho dos tipos de base do C;Conversor de temperatura Fahrenheit para Celsius;Conta caracteres brancos, tabulações e retornos à linha;Verifica se uma dada palavra esta contida dentro de uma frase;Variáveis globais e locais;Exemplo de classe static;Exemplo de classe extern;

Page 57: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

ProcessosProcessosDefinições iniciais:Definições iniciais:

Programa: arquivo executávelPrograma: arquivo executável Processo: programa em execuçãoProcesso: programa em execução Lista de argumentos: recebida pelo programa quando este é colocado em Lista de argumentos: recebida pelo programa quando este é colocado em

execução, exemplo:execução, exemplo: main (int argc, char *argv[ ] ) main (int argc, char *argv[ ] )

Lista de variáveis de ambiente: também recebida pelo programa quando este Lista de variáveis de ambiente: também recebida pelo programa quando este é colocado em execuçãoé colocado em execução main (int argc, char *argv[ ], char *envp[ ])main (int argc, char *argv[ ], char *envp[ ]) exemplo: programa que imprime a lista de variáveis de ambiente recebidasexemplo: programa que imprime a lista de variáveis de ambiente recebidas

Formato das varáveis de ambiente: var = stringFormato das varáveis de ambiente: var = string Ultima string da lista de variáveis de ambiente: obrigatoriamente NULL, isto Ultima string da lista de variáveis de ambiente: obrigatoriamente NULL, isto

é, (char *) 0é, (char *) 0 Outras maneiras de se obter as variáveis de ambiente:Outras maneiras de se obter as variáveis de ambiente:

uso da variável externa “environ” uso da variável externa “environ” uso da função “getenv”uso da função “getenv”

Page 58: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

ProcessosProcessos

Page 59: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

ProcessosProcessos

Page 60: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

ProcessosProcessos

Page 61: Fundamentos de Programação Copyright, 2011 © Alexandre C. B. Ramos Prof. Dr. Alexandre C. B. Ramos INTRODUÇÃO A INFORMÁTICA O COMPUTADOR SISTEMA OPERACIONAL

ProcessosProcessosIdentificador do processoIdentificador do processo

Cada processo possui um único identificador de processo (“PID”, Cada processo possui um único identificador de processo (“PID”, inteiro)inteiro)

Para um processo obter o seu PID, ele deve chamar a função Para um processo obter o seu PID, ele deve chamar a função “getpid()”“getpid()”

Identificador do processo paiIdentificador do processo pai Cada processo possui um processo paiCada processo possui um processo pai Para obter o PID do processo pai, deve ser chamada a função Para obter o PID do processo pai, deve ser chamada a função

“getppid()”“getppid()”