Baixe o app para aproveitar ainda mais
Prévia do material em texto
Funcionamento do Computador Projeto Lógico de um Computador • Matemático John Von Neumann • Projetou o primeiro computador com programa armazenado na memória • Suas ideias permanecem até os dias de hoje como projeto lógico dos computadores Unidades Funcionais de um Computador Unidade Central de Processamento Memória Principal Dispositivos de Entrada / Saída 4 Esquema de um computador Fonte: Informática Conceitos Básicos – Fernando de Castro Velloso CPU • Unidade Ativa de um computador – Coordena e executa as instruções – Executa operações matemáticas e lógicas • Dividida em duas seções – Controle (Control Unit) • Responsável pela execução de instruções – Aritmética e Lógica (Arithmetical & Logical Unit) • Responsável pelos Cálculos e “Decisões” Memória • Dispositivo Passivo • Objetivo – Armazenar informações • Dados e instruções de programas – Fornece estas informações • CPU • Dispositivos de saída – Recebe • Resultados de operações da CPU • Dados dos dispositivos de entrada Programa • Composto por uma série de instruções que o computador precisa executar • Tanto o programa quanto os dados precisam estar armazenados na memória do computador Se os dados estiverem no disco rígido devem ser trazidos para a memória antes de serem executados Se os dados estiverem no disco rígido devem ser trazidos para a memória antes de serem executados Programa • O programa é executado instrução por instrução (uma por vez) • Cada instrução é transferida da memória para a seção de controle na CPU • Depois cada instrução é analisada – Se esta utiliza dados, os mesmos são buscados na memória e armazenados temporariamente na CPU • Finalmente a instrução é executada pela unidade de lógica e aritmética Execução de um Programa (cont.) • O resultado da execução da instrução, se for um dado, é – Armazenado novamente na memória... – ...E /OU encaminhado a um dispositivo de saída Funcionamento do computador para algoritmos • Exemplo de um algoritmo: calcular e exibir a média aritmética de quatro notas – INÍCIO Receba a nota da prova1 Receba a nota de prova2 Receba a nota de prova3 Receba a nota da prova4 Some todas as notas e divida o resultado por 4 Mostre o resultado da divisão – FIM Funcionamento do computador para algoritmos DiscoDisco MemóriaMemória C.P.UC.P.U 0000 ..... ..... ..... 0100 Receber nota1 0101 Receber nota2 0102 Receber nota3 0103 Receber nota4 0104 Somar as 4 notas 0105 Dividir por 4 ..... ..... 127Mb ..... I/OI/O A.L.U.A.L.U. Eniac e a arquitetura de Von Neumann https://www.youtube.com/watch?v=egPA39zBDys https://www.youtube.com/watch?v=gQbTeayG6Dg Linguagens de Programação e Tradução Tipos de Linguagem Linguagens de baixo nível Atuam diretamente no hardware da máquina Forte relação entre as operações implementadas pela linguagem e as operações implementadas pelo hardware Linguagens de alto nível Utilizadas pelos humanos para expressar problemas e algoritmos Cada declaração equivale a várias declarações numa linguagem de baixo nível Tipos de Linguagem Linguagem de Máquina Linguagem de Máquina • 0010 0001 1110 • 0010 0010 1111 • 0001 0001 0010 • 0011 0001 1111 Linguagem Assembly (Mnemônica) Linguagem Assembly (Mnemônica) • LOAD R1, val1 • LOAD R2, val2 • ADD R1, R2 • STORE R1, val2 Linguagem de Alto Nível Linguagem de Alto Nível • val2 = val1 + val2 Totalmente codificadas em binário Usa instruções simbólicas para representar binário BAIXO NÍVEL ALTO NÍVEL Voltada para facilitar o raciocínio humano Compiladores e interpretadores Programa – forma de comunicação com o computador Linguagem de máquina – é a única linguagem que o computador entende Quem faz esse trabalho são os compiladores e os interpretadores! Pr og ra m a Linguagem de MáquinaTraduzido Compiladores e interpretadores Interpretador: • Lê a primeira instrução do programa • Faz uma consistência de sua sintaxe e se não houver erro, traduz para linguagem de máquina para finalmente executá-la • Assim sucessivamente! Toda vez que executar o programa é necessário o interpretador, e todo trabalho será repetido novamente Compiladores e interpretadores Compilador: • Lê a primeira instrução do programa • Faz uma consistência de sua sintaxe e se não houver erro, traduz para linguagem de máquina e, em vez de executá-la, segue para a próxima instrução repetindo o processo até que a última instrução seja atingida ou ocorra algum erro • Se não houver erros, o compilador gera um arquivo com as instruções já traduzidas para depois executá-lo O programa é completamente compilado para um código mais próximo da linguagem de máquina Atividade Code.org https://studio.code.org/s/starwarsblocks Lightbot https://www.lightbot.lu/ Tipos básicos e estrutura de um programa Componentes de um algoritmo • Constantes e Tipos de Dados • Variáveis • Instruções de Entrada / Saída • Operador de Atribuição • Operadores Matemáticos, relacionais e Lógicos • Estruturas de Decisão • Estruturas de Repetição Qualquer programa terá um ou mais desses componentes Qualquer programa terá um ou mais desses componentes Constantes e Tipos de Dados • Constantes são valores que não se alteram em um algoritmo (valores fxos) • Os dados são os valores que serão utilizados para a resolução de um problema – Fornecidos pelo usuário do programa – Originados de processamentos (cálculos) – Outros programas, etc • Classifcados em: – Literal – Inteiro (numérico) – Real – Lógico Tipos de dados em C • Caractere: char • Booleano: bool** • Inteiro: int • Ponto futuante: foat • Ponto futuante de precisão dupla: double • Sem valor: void – Este tipo serve para indicar que um resultado não tem um tipo defnido. Uma das aplicações deste tipo em C é criar um tipo vazio que pode posteriormente ser modifcado para um dos tipos anteriores Tipos de dados em C • Caractere: char • Booleano: bool** • Inteiro: int • Ponto futuante: foat • Ponto futuante de precisão dupla: double • Sem valor: void – Este tipo serve para indicar que um resultado não tem um tipo defnido. Uma das aplicações deste tipo em C é criar um tipo vazio que pode posteriormente ser modifcado para um dos tipos anteriores Não é possível criar tipo bool em C Tipos de dados em C • Caractere: char • Booleano: bool** • Inteiro: int • Ponto futuante: foat • Ponto futuante de precisão dupla: double • Sem valor: void – Este tipo serve para indicar que um resultado não tem um tipo defnido. Uma das aplicações deste tipo em C é criar um tipo vazio que pode posteriormente ser modifcado para um dos tipos anteriores Não é possível criar tipo bool em C Não vamos usar! 26 Exercícios • Identifcar o tipo de dado/constante: a) 21 b) 3.1415 c) 6.78 d) ‘h’ e) 0 f) ‘3’ 27 Exercícios • Identifcar o tipo de dado/constante: a) 21 int b) 3.1415 foat c) 6.78 foat d) ‘h’ char e) 0 int f) ‘3’ char Operadores • Utilizados para representar expressões de cálculos, comparação, condição e atribuição • Basicamente três tipos de operadores: – Operadores Aritméticos – Operadores Relacionais – Operadores Lógicos 29 Operadores Aritméticos Operação Operador Expressão Resultado Adição + 6 + 4 10 Subtração – 7 – 9 -2 Multiplicação * 12 * 3 36 Divisão / 44 / 2 22 Módulo (Resto da Divisão) % 10 % 3 1 Exemplo • Qual o resultado da avaliação da expressão 10 - 4 * 2 + 1 1, 13, 18, 3 ? • Depende da precedênciados operadores! 31 Maior Menor + - / * ( ) Exemplos 6 * 4 + 5 -3 3 + (2 - 1) * 5 Precedência de Operadores Operadores Relacionais • Estabelecem uma relação de comparação entre valores ou expressões • Resultam sempre em um valor lógico – VERDADEIRO/FALSO (true/false) Operadores Relacionais Operador Representação Exemplo Maior que > a > b : Se o valor de a for maior do que o valor de b, retornará true. Senão, retornará false Maior ou igual a >= a >= b : Se o valor de a for maior ou igual ao valor de b, retornará true. Senão, retornará false Menor que < a < b : Se o valor de a for menor do que o valor de b, retornará true. Senão, retornará false Menor ou igual a <= a <= b : Se o valor de a for menor ou igual ao valor de b, retornará true. Senão, retornará false Igual a == a == b : Se o valor de a for igual ao valor de b, retornará true. Senão, retornará false Diferente de != a != b : Se o valor de a for diferente do valor de b, retornará true. Senão, retornará false Operadores Lógicos • Utilizados para concatenar ou associar expressões que estabelecem uma relação de comparação entre valores • O resultado dessas expressões é sempre um valor lógico (true/false) Operadores Lógicos • E (&&) Se TODAS as expressões condicionais forem verdadeiras, o resultado é VERDADEIRO • OU ( || ) Se UMA expressão condicional for verdadeira, o resultado é VERDADEIRO • NÃO ( ! ) Se a expressão condicional for falsa, o resultado é verdadeiro. Caso contrário é falso Operadores Lógicos • Tabela-verdade para os operadores && e || A B A && B A || B V V V V V F F V F V F V F F F F • && – somente resulta em VERDADEIRO quando todas as sentenças avaliadas são verdadeiras • || – somente resulta em FALSO quando todas as sentenças avaliadas são falsas Operadores Lógicos • O operador ! faz a negação de uma sentença: • Precedência dos operadores: !, && ou || A ! A V F F V Exemplos Estrutura mínima de um Programa em C Em linguagem C, a função main() é o ponto de partida na execução de um programa. Criando um projeto no Codeblocks Clicar em "Create new project" Criando um projeto no Codeblocks Selecionar "Console application" Criando um projeto no Codeblocks Seguir com o assistente para criação e, quando solicitado, selecionar a linguagem C Criando um projeto no Codeblocks Escolher um nome e pasta para o projeto Criando um projeto no Codeblocks Finalizar o assistente, selecionando o compilador "GNU GCC compiler" Criando um projeto no Codeblocks Para ver o programa exemplo, selecione "main.c" dentro do grupo "Sources" Compilando o projeto Para compilar o projeto, basta clicar no botão "Build and Run" Estrutura de um Programa em C • #include <stdio.h> – Contém as definições básicas para entrada e saída de dados em C; • Um programa C consiste em uma ou várias funções – main () • Faz parte de todo aplicativo escrito em C • Ponto de início da execução do programa • ( ) indicam que main é uma função Estrutura de um Programa em C • printf(“Programando em C!”); • printf é uma função que instrui o computador a imprimir na tela do computador o conjunto de caracteres contido entre aspas duplas; • Veremos o printf em mais detalhes no decorrer do curso; • Todo comando em C deve terminar com ponto e vírgula (;) • Mas quais são os comandos? • Entrada e saída de dados; • Cálculos; • Atribuições; • Criação de variáveis; Estrutura de um Programa em C • // (comentário de única linha) – indica que o restante da linha é um comentário • /* (comentário de múltiplas linhas) */ – pode ser dividido em várias linhas • Documentação de programas – melhorar a legibilidade { início do programa ou bloco de instruções } fim do programa ou bloco de instruções Comando printf 50 • É uma das funções de E/S (entrada e saída) • Sintaxe: printf ("expressão de controle"); • Usado dessa forma apenas para informação do usuário; • Antes de uma entrada de dados; • Indicando que passou por algum trecho de código ou está iniciando algum processamento; Comando printf printf ("expressão de controle", lista de argumentos); • Pode ter vários argumentos separados por vírgula; • A expressão de controle contém: – Caracteres que serão exibidos na tela – Códigos de formatação que indicam o formato em que os argumentos devem ser impressos; • Usado para imprimir resultados de processamento; Códigos de formatação • Indicam qual é o tipo do argumento que será impresso (ou seja, como o printf deve interpretar tais argumentos); • Indicam também em que posição da expressão de controle os argumentos serão impressos; • No momento em que a expressão estiver sendo impressa, os códigos de formatação são trocados pelo valor dos respectivos argumentos; 52 Códigos de formatação 53 Códigos de formatação 54 •Clique para adicionar texto Exemplos main() { printf("%s esta a %d milhoes de milhas do sol", "Venus",67); } Código %s esta a %d milhoes de milhas do sol Processamento – frase de controle inicial Exemplos main() { printf("%s esta a %d milhoes de milhas do sol", "Venus",67); } Código %s esta a %d milhoes de milhas do sol Processamento – substituição das expressões de controle “Venus” 67 Exemplos Código main() { printf("%s esta a %d milhoes de milhas do sol", "Venus",67); } Código Venus esta a 67 milhoes de milhas do sol Processamento – resultado apresentado na tela Exemplos main() { printf("A letra %c ",'j'); printf("pronuncia-se %s.", "jota"); } Formatação de saída A letra j pronuncia-se jota Caracteres Especiais Nulo\0 Barra\\ Aspas\” TAB\t Retorno do cursor\r Nova linha\n SignificadoCaracteres Especiais Somar dois números Exercício Criar um programa para exibir: - Soma de 15 + 39; - Diferença entre 20 e 15; - Produto entre 11 e 5; - Resultado da divisão de 16 por 7; - Resto da divisão de 16 por 7. Projeto Lógico de um Computador Slide 2 Unidades Funcionais de um Computador Esquema de um computador CPU Memória Programa Programa Execução de um Programa (cont.) Funcionamento do computador para algoritmos Funcionamento do computador para algoritmos Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Componentes de um algoritmo Constantes e Tipos de Dados Tipos de dados em C Slide 24 Slide 25 Exercícios Slide 27 Operadores Operadores Aritméticos Exemplo Precedência de Operadores Operadores Relacionais Slide 33 Operadores Lógicos Slide 35 Slide 36 Slide 37 Slide 38 Estrutura mínima de um Programa em C Slide 40 Slide 41 Slide 42 Slide 43 Slide 44 Slide 45 Slide 46 Estrutura de um Programa em C Slide 48 Slide 49 Comando printf Slide 51 Códigos de formatação Slide 53 Slide 54 Exemplos Slide 56 Slide 57 Slide 58 Slide 59 Slide 60 Slide 61
Compartilhar