45
PCI- Introdução Profa. Mercedes Gonzales Márquez

PCI- Introdução Profa. Mercedes Gonzales Márquez

Embed Size (px)

Citation preview

Page 1: PCI- Introdução Profa. Mercedes Gonzales Márquez

PCI- Introdução

Profa. Mercedes Gonzales Márquez

Page 2: PCI- Introdução Profa. Mercedes Gonzales Márquez

Conceitos Básicos

MEMÓRIA PRINCIPAL

UNIDADE DE

ENTRADA

UNIDADEDE

SAIDA

MEMÓRIASECUNDÁRIA

Estrutura de um computador

UNIDADELÓGICA E

ARITMÉTICA

CPU

Page 3: PCI- Introdução Profa. Mercedes Gonzales Márquez

Conceitos básicos

Unidade de entrada – Usada pelo computador para receber informações ou instruções externas. Ex. Teclado, mouse, câmara de vídeo, etc.

Unidade de saída – Usada pelo computador para exibir os resultados da computação. Ex. Monitor, impressora, etc.

Unidade Central de Processamento – (Central Processing Unit - CPÙ) Responsável pelo gerenciamento do sistema como um todo.

Page 4: PCI- Introdução Profa. Mercedes Gonzales Márquez

Conceitos básicos Unidade lógica e aritmética – São executadas

operações matemáticas de adição, multiplicação e divisão e operações lógicas como conjunção, disjunção, ou exclusivo e outras. Alguns computadores tem esse unidade separada da CPU. Também chamada de co-processador matemático.

Page 5: PCI- Introdução Profa. Mercedes Gonzales Márquez

Conceitos básicos Memória – armazena os dados e o próprio programa.

Número finito de localizações que são identificadas por meio de um único endereço.

1000

10031004100510061007100810091010

10011002Read/Write

CPU

Endereço

Dados

Escrita – CPU envia endereço da posição de memória a ser escrita e dados a escrever.

Leitura – CPU envia endereço da posição de memória a ser lida e recebe dados.

Page 6: PCI- Introdução Profa. Mercedes Gonzales Márquez

Conceitos básicos Memória Principal: Usada pela CPU para armazenar

instruções e informações enquanto o computador está ligado. Também conhecida como memória RAM (Random Access Memory).

Memória Secundaria: Usada pelo computador para armazenar instruções e informações por prazo indeterminado, independente do estado do computador (ligado ou desligado). Em geral com capacidade de armazenamento bem maior do que a memória RAM, mas de acesso mais lento. Ex: discos rígidos, pen drives, etc.Observação: As memórias principal e secundária podem ser vistas como unidades de entrada e saída.

Page 7: PCI- Introdução Profa. Mercedes Gonzales Márquez

Alguns termos técnicos Dados: Qualquer tipo de informação ou instrução que pode

ser manipulada pelo computador. Ex: textos, imagens, etc. Bit: Unidade básica para armazenamento, processamento e

comunicação de dados. Byte: Um conjunto de 8 bits. Comandos: São as instruções que fazem com que o

computador execute tarefas. Programa: Sequência de instruções com alguma finalidade.

Page 8: PCI- Introdução Profa. Mercedes Gonzales Márquez

Alguns termos técnicos Algoritmos: São instruções a serem seguidas para resolver

um determinado problema. Exemplo: Uma receita de bolo. Um algoritmo poderá ser codificado em uma linguagem de programação e então se tornará um programa.

Software: Conjunto de programas com um propósito global em comum.

Hardware: Consiste da parte física do computador. Sistema Operacional: Conjunto de programas que gerenciam

e alocam recursos de hardware e software. Ex: Unix, Windows98, Linux, etc.

Page 9: PCI- Introdução Profa. Mercedes Gonzales Márquez

Alguns termos técnicos Linguagem de Programação: Consiste da sintaxe (gramática) e

semântica (significado) utilizada para escrever (ou codificar) um programa.

(a) Alto Nível: Linguagem de codificação de programa independente do tipo de máquina e de fácil utilização pelo ser humano. Ex: Pascal, C, Algol, Cobol, Fortran (1º linguagem em meados de 1950), BASIC, Java, Python, Tcl/Tk, etc.(b) Baixo Nível: Linguagem de codificação baseada em mnemônicos. Dependente do tipo de máquina e de fácil tradução para a máquina. Conhecida como linguagem assembly.

Page 10: PCI- Introdução Profa. Mercedes Gonzales Márquez

Alguns termos técnicos Linguagem de Maquina: Conjunto de códigos binários que

são compreendidos pela CPU de um dado computador. Dependente do tipo de máquina.

Compilador: Traduz programas codificados em linguagem de alto ou baixo nível (i.e. código fonte) para linguagem de máquina (i.e. código executável). Ex: O assembler transforma um programa em assembly para linguagem de máquina. Uma vez compilado, o programa pode ser executado em qualquer máquina com o mesmo sistema operacional para o qual o programa foi compilado.

Page 11: PCI- Introdução Profa. Mercedes Gonzales Márquez

Etapas da resolução de problemas usando o computador

Da apostila do Prof. Alexandre Xavier Falcão

Page 12: PCI- Introdução Profa. Mercedes Gonzales Márquez

Compilando um programa no CodeBlocks do windows1. Crie um arquivo novo utilizando File → New → Empty file.2. Salve o arquivo apos digitar o cabecalho, utilizando um nome apropriado

terminado com a extensão .c . Para tanto, va em File → Save File (CTRL + S) e escolha um nome. No caso de exemplo utilizamos altura.c.

3. Insira o código lembrando sempre de identá-lo com a tecla TAB e comenta-lo apropriadamente. Note que o Code::Blocks tende a identar o código automaticamente, mas haverá vários momentos em que a identação devera ser corrigida manualmente.

Apos alterar o arquivo .c, salve-o e aperte a tecla F9 (Build → Build and Run) para compilá-lo e executá-lo. Pressione também F2 para aparecer a um retângulo abaixo do código com a saída da compilação caso já não esteja aparecendo.

Page 13: PCI- Introdução Profa. Mercedes Gonzales Márquez

Primeiro Programa

Estrutura do código fonte– Comentários– Diretivas de compilador– Procedimento principal

Page 14: PCI- Introdução Profa. Mercedes Gonzales Márquez

Primeiro Programa/* file: oi.c* Este programa escreve a mensagem "Oi pessoal"* na tela. O programa foi tomado do livro* "Art and Science of C" de Eric Roberts.*/#include <stdio.h>#include <stdlib.h>int main(int argc, char* argv[]){ printf("Oi pessoal.\n");return 0;}

Page 15: PCI- Introdução Profa. Mercedes Gonzales Márquez

Primeiro Programa/* file: oi.c* Este programa escreve a mensagem "Oi pessoal"* na tela. O programa foi tomado do livro* "Art and Science of C" de Eric Roberts.*/#include <stdio.h>int main(int argc, char* argv[]){ printf("Oi pessoal.\n");return 0;}

Comentários

Diretivas deCompilador

ProcedimentoPrincipal

Page 16: PCI- Introdução Profa. Mercedes Gonzales Márquez

Primeiro Programa

Comentários• Texto ignorado pelo compilador• Documentação útil para descrever trechos do algoritmo• Possível em qualquer posição do código fonte• Duas formas para comentários:

- Uma linha:// Comentário ...- Várias linhas: /* Comentário...mais comentários ... */

Page 17: PCI- Introdução Profa. Mercedes Gonzales Márquez

Primeiro Programa

Diretivas de Compilador:• Informam outros arquivos que devem ser consultados

antes de compilar.• Definem parâmetros utilizados pelo compilador.• São colocadas no início do código fonte.

Exemplos: #include <stdio.h>#include <stdlib.h>#include <math.h>

Page 18: PCI- Introdução Profa. Mercedes Gonzales Márquez

Primeiro Programa

Procedimento principal:• Sequência de instruções• Pontuação: ponto-e-vírgula termina instruções• Chaves agrupam instruções relacionadas

int main(int argc, char* argv[]){ printf("Oi pessoal.\n");return 0;

• int argc, char* argv[] e return 0 são obrigatórios.

Page 19: PCI- Introdução Profa. Mercedes Gonzales Márquez

Memória

• Memória: sequência de células• Endereço: posição da célula • Células armazenam dados– Valor pequeno: uma célula– Valor grande: duas ou mais células

Page 20: PCI- Introdução Profa. Mercedes Gonzales Márquez

Memória

• Operações na memória:1. Consulta (lê) células de memória2. Programa calcula um novo valor3. Armazena (escreve) o novo valor em uma célula

Page 21: PCI- Introdução Profa. Mercedes Gonzales Márquez

Variáveis

• Abstração dos endereços de memória.• Rótulo simbólico para cada endereço.

Page 22: PCI- Introdução Profa. Mercedes Gonzales Márquez

Variáveis

• Variável: nome simbólico associado a um dado.

Nome (rótulo)Variável:

Valor (conteúdo)

Page 23: PCI- Introdução Profa. Mercedes Gonzales Márquez

Declarando uma variável

Declara-se da seguinte forma: Tipo Variável Nome Variável;

Exemplo :int numero;

Page 24: PCI- Introdução Profa. Mercedes Gonzales Márquez

Variáveis inteiras

Os seguintes são os tipos da linguagem C que servem para armazenar inteiros:int: Inteiro cujo comprimento depende do processador. E o inteiro mais utilizado. Em processadores Intel comum, ocupa 32 bits e pode armazenar valores de -2.147.483.648 a 2.147.483.647.unsigned int: Inteiro cujo comprimento depende do processador e que armazena somente valores positivos. Em processadores Intel comum, ocupa 32 bits e pode armazenar valores de 0 a 4.294.967.295.

Page 25: PCI- Introdução Profa. Mercedes Gonzales Márquez

Variáveis inteiras

long int: Inteiro que ocupa 64 bits em computadores Intel de 64bits e pode armazenar valores de aprox. -9 x1018 a aprox. 9 x1018.unsigned long int: Inteiro que ocupa 64 bits e em computadores Intel de 64bits e armazena valores de 0 ate aprox. 18 x1018.short int: Inteiro que ocupa 16 bits e pode armazenar valores de -32.768 a 32.767.unsigned short int: Inteiro que ocupa 16 bits e pode armazenar valores de 0 a 65.535.

Page 26: PCI- Introdução Profa. Mercedes Gonzales Márquez

Variáveis de tipo caracter

Variáveis utilizadas para armazenar letras e outros símbolos existentes em textos. Guarda apenas um caracter.Exemplos de declaração:char umaLetra;

Page 27: PCI- Introdução Profa. Mercedes Gonzales Márquez

Variáveis de tipo ponto flutuante

Variáveis utilizadas para armazenar letras e outros símbolos existentes em textos. Guarda apenas um caracter.Exemplos de declaração:char umaLetra;

Page 28: PCI- Introdução Profa. Mercedes Gonzales Márquez

Variáveis de tipo ponto flutuante

Armazenam valores reais. Mas possuem problemas de precisão pois há uma quantidade limitada de memória para armazenar um número real.Exemplos de números em ponto flutuante: 2.1345 ou 9098.123.- float: Utiliza 32 bits, e na pratica tem precisão de aproximadamente 6 casas decimais (depois do ponto). Pode armazenar valores de (+/-)10-38 a (+/-)1038

double: Utiliza 64 bits, e na pratica tem precisão deaproximadamente 15 casas decimais. Pode armazenar valores de (+/-)10-308 a (+/-)10308

Page 29: PCI- Introdução Profa. Mercedes Gonzales Márquez

Regras para nomes de variáveis em C

• Deve começar e pode conter letra (maiúscula ou minúscula) ou underline(_).

• Não pode-se utilizar como parte do nome de uma variável: { ( + - * / \ ; . , ?

• Letras maiúsculas e minúsculas são diferentes:• As seguintes palavras são reservadas na linguagem C

e portanto não podem ser utilizadas como nome de variáveis:

auto double int struct break enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do

if static while

Page 30: PCI- Introdução Profa. Mercedes Gonzales Márquez

Operações aritméticas e expressões

Operações aritméticas podem ser combinadas formando expressões. Existe uma regra de multiplicação e divisão (mesma prioridade) sobre soma e subtração (mesma prioridade) e a ordem de execução para operadores da mesma prioridade é de esquerda para direita. Exemplo.int main(){int a=20, b=10;float c=1.5,d;d=c*b/a; /*atribui 0.75 para d*/d=c*(b/a); /*atribui 0.0 para d pois a divisão entre inteiros resulta em um inteiro*/}

Page 31: PCI- Introdução Profa. Mercedes Gonzales Márquez

Operações aritméticas e expressões

Note que a melhor forma de garantir o resultado esperado é usar parênteses. A prioridade de execução neste caso é da expressão mais interna para a mais externa.

Int main(){int a=20, b=10;float c=1.5, d;d= (((a+5)*10)/2)+b; /*atribui 135 para d*/}

Page 32: PCI- Introdução Profa. Mercedes Gonzales Márquez

Operações aritméticas e expressões

Símbolo Função

+ Adição

- subtração

* Multiplicação

/ Divisão real

% Resto da divisão inteira/ Quociente da divisão inteira

Page 33: PCI- Introdução Profa. Mercedes Gonzales Márquez

Constantes

Assim como variáveis, constantes são usadas para armazenar números e caracteres. Exemplos:# define PI 3.1415926536 /* atribui o valor para PI*/# define Delta 0.001

Page 34: PCI- Introdução Profa. Mercedes Gonzales Márquez

Definindo novos tipos

Podemos usar o comando typedef para definir novos tipos de variáveis ou abreviar tipos existentes.

Typedef enum {false,true} bool; /* o tipo bool só armazena 0/false e 1/true*/

Page 35: PCI- Introdução Profa. Mercedes Gonzales Márquez

Operações lógicas e expressões

Os caracteres &&, ||, !, indicam as seguintes operações lógicas: and, or e not, correspondendo às operações de conjunção, disjunção e negação, respectivamente.

Page 36: PCI- Introdução Profa. Mercedes Gonzales Márquez

Operações lógicas e expressões

#include <stdio.h> /*Biblioteca para incluir comandos de entrada e saída como printf*/

Typedef enum {false,true} bool;Int main(){ bool v1,v2,v3;v1=true;v2=false;v3=v1&&v2;v3=v1||v2;v3=!v1;v3=((v1&&v2))||(!v2);printf("%d,%d,%d\n",v1,v2,v3);}

Page 37: PCI- Introdução Profa. Mercedes Gonzales Márquez

Funções matemáticas

Função ResultadoSin(x) Seno de um ângulocos(x) Coseno de um ângulotan(x) Tangente do ânguloexp(x) O número e elevado a x.ln(x) Logaritmo neperiano de x

sqrt(x) Raiz quadrada de xlog10(x) Logaritmo base 10 de xRound(x) Arredondamento do ponto

flutuante x.

Várias funções matemáticas são disponibilizadas pela linguagem C.

Page 38: PCI- Introdução Profa. Mercedes Gonzales Márquez

Funções matemáticas#include <stdio.h> #include <math.h>  /* biblioteca padrão para funções matemáticas básicas*/# define PI 3.1415926536 /* atribui o valor para PI*/int main(int argc, char *argv[]) { float a=1.0,b;printf("O valor 4.3 arredondado usando round() e %f", round(4.3)); b=exp(a);printf(“a=%f, b=%f\n”,a,b);a=2.0;a=pow(a,3.0);printf(“a=%f\n”,a);a=cos(PI/2);printf(“a=%f\n”,a);return 0; }

Page 39: PCI- Introdução Profa. Mercedes Gonzales Márquez

Comandos de entrada/saída

Entrada de Dados:O teclado é o dispositivo padrão para entrada de dados. O comando scanf lê números e caracteres digitados no teclado da seguinte forma:scanf (“%d”, &x) onde x é uma variável inteira e &x é o endereço em memória da variável x.Cada tipo de variável requer um símbolo específico de conversão. O símbolo %d é usado para variáveis int,short, unsigned short, unsigned char;O símbolo %u é usado para unsigned inteiro.O símbolo %c para char.O símbolo %s para char e cadeias de caracteres.O símbolo %f para float e o símbolo %lf para double.

Page 40: PCI- Introdução Profa. Mercedes Gonzales Márquez

Comandos de entrada/saída

Saída de Dados: O teclado é o dispositivo padrão para saída de dados. O comando printf apresenta números e caracteres na tela da seguinte forma: printf (%d”, x) onde x é uma variável inteira

Exemplo:#include<stdio.h>Int main(){Int a=9, b=800;Float c=20.9176, d=-1.4219/*\n pula linha, 3 indica o número de dígitos, incluindo o sinal, se houver, 5 indica o número de dígitos total, incluindo o sinal, se houver, e 2 indica o número de dígitos após o ponto.printf (“\n a=3d,\n b=%3d, \n c=%5.2f, \n d=%5.2f.\n”,a,b,c,d);return(0);}

Page 41: PCI- Introdução Profa. Mercedes Gonzales Márquez

Comandos de entrada/saída

include<stdio.h>int main(){

int ano;printf(“Digite o ano de nascimento:");scanf(“%d",&ano);printf(“O ano de nascimento digitado foi: %d\

n",ano);}

Page 42: PCI- Introdução Profa. Mercedes Gonzales Márquez

Comandos de entrada/saída

include<stdio.h>int main(){

int base, altura, area;printf`(“Digite a base do retangulo:");scanf(“%d",&base);printf(“Digite a altura do retangulo:");scanf(“%d",&altura);area = base altura;printf(“Valor da area e: %d\n",area);

}

Page 43: PCI- Introdução Profa. Mercedes Gonzales Márquez

Exercícios de comandos de entrada e saída

1. Faça um programa que leia o valor do salário de um funcionário, calcule e mostre seu novo salário, sabendo que o mesmo recebeu um aumento de 21,3%.

2. Faça um programa que receba a altura do degrau de uma escada e a altura que o usuário deseja alcançar subindo a escada. Calcular e mostrar quantos degraus o usuário deverá subir para atingir seu objetivo, sem se preocupar com a altura do usuário.

3. 3. Leia o valor do raio de um círculo e calcule a área deste círculo.

Page 44: PCI- Introdução Profa. Mercedes Gonzales Márquez

Comandos de entrada/saída

4. A importância de R$ 780.000,00 será dividida entre três ganhadores de um concurso. Sendo que da quantia total: O primeiro ganhador receberá 46%; O segundo receberá 32%; O terceiro receberá o restante.Calcule e imprima a quantia ganha por cada um dos ganhadores.5. Uma empresa contrata um encanador a R$ 30,00 por dia. Crie um programa que solicite o número de dias trabalhados pelo encanador e imprima a quantia líquida que deverá ser paga, sabendo-se que são descontados 8% para pagamento de impostos e taxas devidas.6. Leia os valores de dois catetos de um triângulo e calcule e mostre o valor da hipotenusa

Page 45: PCI- Introdução Profa. Mercedes Gonzales Márquez

Comandos de entrada/saída

7. Ler um número inteiro e imprimir a soma do sucessor de seu triplo com o antecessor de seu dobro.