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

Post on 07-Apr-2016

224 views 3 download

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

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

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.

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.

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.

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.

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.

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.

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.

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.

Etapas da resolução de problemas usando o computador

Da apostila do Prof. Alexandre Xavier Falcão

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.

Primeiro Programa

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

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

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

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 ... */

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>

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.

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

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

Variáveis

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

Variáveis

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

Nome (rótulo)Variável:

Valor (conteúdo)

Declarando uma variável

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

Exemplo :int numero;

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.

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.

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;

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;

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

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

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*/}

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*/}

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

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

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*/

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.

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

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.

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

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.

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

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

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

}

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.

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

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.