Exercícios e Problemas com o SPIM
|
|
|
- Denílson Barbosa Arantes
- 7 Há anos
- Visualizações:
Transcrição
1 Henrique M. D. Santos DSI/UM Índice Nível Introdutório Expressões simples, transferências com a memória e I/O Arrays Operações condicionais, de salto e ciclos Procedimentos Nível Introdutório 1.1 Expressões simples, transferências com a memória e I/O 1. Implementar em assembly do MIPS um programa que execute o cálculo da expressão: a = (b + c) - (d + e + f). Utilize os registos $s para guardar o valor das variáveis. Complete o programa carregando nas variáveis (registos) valores iniciais à sua escolha e, finalmente, execute o programa no SPIM. Faça executar o programa passo-a-passo, observando cuidadosamente as alterações sucessivas que vão ocorrendo nos registos. O que acontece quando o programa chega ao fim? Comente esse comportamento. Nota: para alterar o valor dos registos utilize, no PCSPim, o menu Simulator -> Set value que lhe dá acesso a uma janela onde pode introduzir o nome de um registo e o valor que lá pretende colocar (em decimal ou hexadecimal); no QtSpim, com o ponteiro sobre o registo em causa e com o botão direito do rato, no menu de contexto seleccione a opção Change Register Contents. TPC1. Implementar em assembly do MIPS um programa que declare dois inteiros (12345 e 0x12345 este último está representado em notação hexadecimal), um byte, com o valor \n (notação simbólica para o caracter newline ASCII 10, ou 0x0A) e uma variável inteira temp. De seguida escreva as instruções necessárias para copiar o conteúdo de cada um dos valores declarados para a variável temp. Faça executar o programa passo-a-passo, observando cuidadosamente as alterações sucessivas que vão ocorrendo na posição de memória associada à variável temp. 2. Complete o programa feito em 1., fazendo aparecer o resultado do cálculo da expressão no monitor consola do SPIM, na respectiva terminologia. Execute o programa passo-a-passo, observando cuidadosamente as alterações sucessivas que vão ocorrendo nos registos. Nota: para escrever no monitor do SPIM utilize o system call apropriado (consulte a tabela fornecida na documentação). TPC2. Altere o programa feito em TPC1. para escrever no monitor do SPIM o valor dos dois inteiros declarados, tendo o cuidado de escrever o caracter \n após cada um dos inteiros. Inclua ainda a leitura de um inteiro do teclado, seguido do respectivo armazenamento na variável temp. Conclua escrevendo no monitor o endereço da primeira variável declarada (estude com cuidado a diferença entre as instruções la e lw). Universidade do Minho, Dpt. Sistemas de Informação, 2011 Página 1 de 5
2 TPC2a. Implementar em assembly do MIPS um programa que leia do teclado uma temperatura dada em graus celsius, calcule a temperatura equivalente em graus Fahrenheit e que escreva no monitor uma mensagem indicando esse resultado. 1.2 Arrays 3. Implementar em assembly do MIPS um programa que declare um array A de 10 inteiros, com os valores iniciais 10, 20, 30, 40, 50, 60, 70, 80, 90 e 100 e ainda uma variável H com o valor inicial O programa deverá somar o valor da variável H ao valor armazenado na posição 8 do array, isto é, H + A[8]. O resultado deve ficar num registo $s à escolha e deverá ser mostrado na consola do SPIM. Execute o programa passo-a-passo, observando cuidadosamente as alterações sucessivas que vão ocorrendo nos registos. TPC3. Implementar em assembly do MIPS um programa que declare a string Olá Mundo!, terminada pelo caracter 0 (este formato é exigido pela função do SPIM que escreve strings no monitor). De seguida escreva as instruções necessárias para escrever essa string no monitor. Execute o programa passo-apasso, observando cuidadosamente a forma como a string está armazenada na memória. 4. Modifique o programa construído em 3., aumentando o número de elementos do array A para 15 (acrescentando os valores iniciais 110, 120, 130, 140 e 150) e permitindo que o índice da posição do array a utilizar na soma seja introduzido pelo utilizador (obviamente, com o auxílio de uma system call do SPIM). Execute o programa passo-a-passo, para diferentes valores do índice, e observando cuidadosamente as alterações sucessivas que vão ocorrendo nos registos. Nota: assuma que o utilizador introduz sempre um valor compreendido entre 0 e Implementar em assembly do MIPS um programa que declare um array A de 10 inteiros (com os valores iniciais 0, 1, 2, 3, 4, 5, 6, 7, 8 e 9) e que faça a troca do valor entre as posições k e k+1. O valor k deve ser introduzido pelo utilizador em run time). Execute o programa passo-a-passo, várias vezes e com diferentes valores de k, observando cuidadosamente as alterações sucessivas que vão ocorrendo nos registos. Nota: fica à sua consideração fazer ou não a validação do valor de entrada k. Q: O que aconteceria se o valor k fosse maior que 9? 1.3 Operações condicionais, de salto e ciclos 6. Implementar em assembly do MIPS um programa que compare dois valores contidos nos registos $t0 e $t1 e que mostre a mensagem menor ou igual, se $t0 <= $t1 ou a mensagem maior, se $t0 > $t1. Os valores de $t0 e de $t1 devem ser considerados constantes e carregados nos registos no início do programa. O programa deve terminar, devolvendo o controlo ao SPIM. Execute o programa de forma contínua, eventualmente definindo um ou dois pontos de paragem (break points) intermédios. # Programa equivalente em C: # t0=5; # t1=4; # # if(t0<=t1) # printf("menor ou igual"); # # else # printf("maior"); # # /*resto do programa*/ 7. Implementar em assembly do MIPS, utilizando as instruções slt, beq e j, um programa que execute a seguinte operação, descrita em C : int save[]=0, 0, 0, 0, 0, 10, 20, 30,40, 50; for(i=0;i<10;i++) printf("%d\n",save[i]); Execute o programa e verifique o seu funcionamento. Universidade do Minho, Dpt. Sistemas de Informação, 2011 Página 2 de 5
3 7a. Implementar em assembly do MIPS um programa que reserve em memória espaço para um vector de 20 elementos (palavras de 32 bits) e que inicialize todos os elementos do vector com o valor da variável val, do tipo float (declare essa variável com o valor inicial 1e -3 ). É aconselhável que declare outras variáveis que poderá necessitar, tais como o índice com que vai precorrer o vector, o deslocamento para aceder a cada posição do vector em memória, o tamanho de cada elemento do vector, o valor máximo do deslocamento dentro do vector, etc. Execute o programa e verifique e verifique o seu funcionamento, observando o conteúdo final da memória. TPC7a. Este exercício é uma variante do exercício 7a., considerando agora uma matriz de duas dimensões (4 linhas e 3 colunas). O preenchimento da matriz deve ser feito recorrendo a um ciclo que faz o preenchimento das colunas, dentro de um outro que percorre as linhas. O programa deve ser executado utilizando breakpoints no início e fim de cada ciclo. Nota: uma das soluções consiste em trabalhar com os índices e efectuar as multiplicações necessárias, em cada passo, para determinar a localização exacta de cada elemento da matriz. Uma segunda solução consiste em determinar inicialmente o tamanho (em bytes) de uma linha e executar apenas uma adição para avançar o ponteiro para a linha seguinte. À partida, esta segunda solução deve ser mais rápida, pois executará menos multiplicações estas são as operações mais caras, em termos do tempo de execução. 7b. Implementar em assembly do MIPS um programa que declare um vector de 15 inteiros (defina livremente os seus valores iniciais) e que permita determinar o valor máximo e mínimo contido nesse vector. Os valores máximo e mínimo devem ser armazenados nas variáveis max e min, devendo ser ainda enviados para o monitor (obviamente, enquadrados numa mensagem adequada). 8. Este exercício destina-se a demonstrar a forma como o Assembler do SPIM calcula o deslocamento a utilizar nos saltos (instruções de branch) e as limitações que estas instruções de salto evidenciam. Carregue para o SPIM o seguinte programa e execute-o passo-a-passo, até que apareça uma mensagem na consola. Procure interpretar essa mensagem de erro. Q: Que alteração deveria ser introduzida para corrigir este programa? TPC8a. Implementar em assembly do MIPS um programa que leia do teclado um valor inteiro, convertao para uma string e escreva no monitor essa string (de certa forma é o que faz a função printf do C quando tem que escrever no monitor um inteiro ) TPC8b. Implementar em assembly do MIPS um programa que leia do teclado um valor inteiro, determine a sua representação em notação hexadecimal (string de símbolos hexadecimais) e escreva no monitor a string com essa representação (mais uma vez, esta é uma das operações que a função printf do C tem que fazer ). 8a. Implementar em assembly do MIPS um programa que permita contar o número de caracteres existente numa string. A string deve ser declarada globalmente ao programa através da directiva.asciiz, a qual permite criar em memória um vector # Programa que ilustra o mecanismo # de saltos (branch) do MIPS.text main: add $t0, $0, $0 beq $t1, $0, label1.text 0x label1: addi $t0, $t0, 1 int t1 = 0; while (str[t1]!= '\0') t1++; de caracteres, cujo último elemento tem o valor 0 ( \0 ou caracter null). O valor da contagem deve ser enviado para o monitor. Experimente o programa com diferentes strings. Universidade do Minho, Dpt. Sistemas de Informação, 2011 Página 3 de 5
4 TPC8c. Implementar em assembly do MIPS um programa que permita contar o número de ocorrências de um determinado caracter (char), numa determinada string (str) ambos declarados globalmente ao programa. O resultado da contagem deve ser enviado para o monitor do SPIM. Experimente o programa alterando a string e o caracter a procurar. 8b. Implementar em assembly do MIPS um programa que permita inverter a ordem dos caracteres numa string, utilizando para o efeito a stack. A string deve ser declarada globalmente. De notar que a estrutura que a stack iplementa (LIFO Last In First Out) presta-se naturalmente para o efeito pertendido. 1.4 Procedimentos 9. Este primeiro exercício sobre procedimentos procura apenas mostrar o mecanismo de chamada, a forma como a stack deve ser gerida e o conceito de variável local (ao procedimento). Implemente em assembly do MIPS um procedimento (addnsub)que execute a operação f=(g+h)-(i+j), sendo estas variáveis todas locais ao procedimento e inicializadas com valores arbitrários. Para demonstrar o seu funcionamento, implemente um programa que declare localmente variáveis com o mesmo nome das do procedimento, que lhes atribua valores diferentes do que são atribuídos no procedimento e que imprima no monitor esses valores, antes e depois da chamada do procedimento. O código C equivalente encontra-se na listagem junta. Nota 1: no procedimento as variáveis locais podem ser implementadas em registos, mas os valores desses registos devem ser salvaguardados na stack. Nota 2: Para devolver o valor ao programa principal, no procedimento deve adoptar a convenção definida para o MIPS, isto é, devolver o valor no registo $v0. int addnsub(void) int temp0, temp1, f,g,h,i,j; g=3; h=7; i=1; j=4; temp0=g+h; temp1=i+j; f=temp0-temp1; printf("\nno procedimento:"); return f; void main(void) int f,g,h,i,j,t0; f=10; g=20; h=30; i=40; j=50; printf("\nfora do procedimento:"); t0=addnsub(); printf("\nvalor devolvido:%d",t0); printf("\nfora do procedimento:"); 9a. A série de números de Fibonacci é muito utilizada em 0 sen 0 problemas de análise de tendências a sua origem resulta do estudo que Leonardo Fibonacci fez, por volta do ano 1200, Fn 1 sen 1 relativamente ao crescimento das colónias de coelhos, supondo Fn 1 Fn 2 sen 2 que cada casal gera um casal, ao fim de um mês; os números de Fibonacci indicam o número de pares de coelhos, ao fim de cada mês. A função de Fibonacci é facilmente descrita pela expressão incluída na caixa anexa. Implementar em assembly do MIPS um procedimento que permita calcular o valor da função de Fibonacci para um dado valor de n, valor esse que, de acordo com a convenção assumida para o MIPS, deve ser passado pelo registo $a0. Utilizando a mesma convenção, o procedimento deve devolver o valor calculado no registo $v0. Teste o procedimento com um programa que o chame e que envie para o monitor do SPIM o resultado. Nota: não utilize uma solução recursiva. Universidade do Minho, Dpt. Sistemas de Informação, 2011 Página 4 de 5
5 TPC9a. Implementar em assembly do MIPS um procedimento que calcule a raiz quadrada inteira de um número inteiro x, passado como parâmetro, executando um dos vários algoritmos disponíveis para o efeito e que é sumariamente descrito pelo código C anexo. As variáveis locais devem ser implementadas na stack e os registos utilizados devem ser salvaguardados. Teste o procedimento com um programa adequado. Se necessitar, encontra uma descrição detalhada deste algoritmo em int isqrt(x) int r; x = (x + 1) >> 1; for(r = 0; x > r; r++) x = x r; return r; 9b. Implementar em assembly do MIPS um procedimento recursivo que permita calcular o factorial de um número passado como parâmetro. Em anexo encontra a solução equivalente feita em C. O parâmetro de entrada deve ser passado pelo registo $a0 e o resultado deve ser devolvido no int fact (int n) if (n < 1) return (1); else return (n * fact(n - 1)); registo $va (seguindo a convenção para o MIPS). Experimente o procedimento utilizando um programa principal que peça ao utilizador o número relativamente ao qual se deseja calcular o factorial e que envie para o monitor do SPIM o resultado. TPC9b. Modifique o exercício 9a transformando o procedimento iterativo num procedimento recursivo. Experimente a solução com diferentes valores de entrada. TPC9c. O puzzle conhecido por Torres de Hanoi constitui um problema frequentemente utilizado para ilustrar algumas técnicas de programação. Na sua essência, este problema consiste em descobrir uma forma de transportar um número N de discos, de dimensões distintas, da coluna 1 para uma das outras duas colunas. A figura ilustra o tabuleiro deste puzzle, no seu estado inicial. Os discos devem ser transportados um-a-um e, em cada coluna, devem sempre respeitar o empilhamento segundo uma ordem decrescente do tamanho. Esta última restrição não se aplica apenas aos estados inicial e final, mas a todos os possíveis estados intermédios. A solução deste problema existe sob a forma de um algoritmo recursivo, o qual se encontra listado na figura (s representa a coluna de origem, d a coluna destino e spare a coluna extra) hanoi(n, s, d, spare) if (N == 1) move1(s, d); else hanoi(n-1, s, spare, d); move1(s, d); hanoi(n-1, spare, d, s); Para implementar este algoritmo em assembly do MIPS sugere-se a utilização de arrays para representar as colunas, sendo o conteúdo de cada posição do array o número do disco que lá se encontra armazenado, considerando os discos numerados de 1 até N. A dimensão dos arrays depende do número de discos e sugere-se 10 como limite. Assim, como exemplo, no estado inicial e no caso ilustrado na figura, o array que representa a coluna 1 (array s no algoritmo) poderá conter os valores s[0]=3, s[1]=2 e s[2]=1 (ou, de uma forma visual mais natural, s[7]=1, s[8]=2 e s[9]=3). Para verificar a solução será desejável que a função move1 envie para o monitor do SPIM uma indicação da operação que realizou, indicação essa que poderá ser uma simples mensagem ou uma imagem com caracteres alfanuméricos que ilustre mais fielmente o estado de cada uma das colunas (neste último caso será eventualmente mais útil utilizar os arrays da forma alternativa descrita acima ). Universidade do Minho, Dpt. Sistemas de Informação, 2011 Página 5 de 5
TÉCNICO DE INFORMÁTICA - SISTEMAS
782 - Programação em C/C++ - estrutura básica e conceitos fundamentais Linguagens de programação Linguagem de programação são conjuntos de palavras formais, utilizadas na escrita de programas, para enunciar
a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização.
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 1. Um programa P foi compilado com um compilador
Sumário. Aula Anterior. Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits.
Sumário Aula Anterior Exercício 7.1 Contagem de bits a 1 numa palavra Exercício 7.2 Deslocamento de n bits num operando de 64 bits Aula 12 1 Sumário Nesta Aula Esclarecimento de dúvidas para o Exame Resolução
Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.
Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Funções e estruturas básicas 1. Faça uma função que recebe a idade de uma
Exercícios Repetição
Curso de Engenharia de Controle e Automação Disciplina: Informática para a Automação Professor: Marcelo Cendron Exercícios Repetição 1.1 8.3 Exercícios 1. Faça um programa utilizando o comando while, que
1ª Lista de Exercícios
Universidade Federal do Rio de Janeiro Data: 26/04/05 Disciplina: Computação I 1ª Lista de Exercícios 1) Faça um programa, em pseudo-código, que peça ao usuário que informe n números reais e então calcule
Estruturas de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas de Repetição Aula Tópico 4 (while, for) 1 Problema 10 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em C. Dados dois números
Faculdade de Computação
Faculdade de Computação Arquitetura e Organização de Computadores 2 1 a Laboratório de Programação MIPS entrega 03/05/2018 Prof. Cláudio C. Rodrigues Problemas: P1) Execute as conversões abaixo: a) Converta
Campus de Sorocaba. Lista de Exercícios Recuperação Introdução à Ciência da Computação 1º Semestre de 2016
1. Escreva os seguintes números na base 2: a. 2 b. 4 c. 8 d. 16 e. 32 f. 15 g. 125 2. Escreva os seguintes números na base 10: a. 10001 b. 11010 c. 11 d. 1001 e. 111111 Lista de Exercícios Recuperação
Algoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes [email protected] 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
3. Linguagem de Programação C
Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação
Expoente Mantissa Frac. UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 Data de entrega 16/09/2016 por e-mail ([email protected])
ARQUITECTURA DE COMPUTADORES
ARQUITECTURA DE COMPUTADORES CAPÍTULO II AULA III Março 2014 Índice Instruction Set Revisões Procedimentos Stack Comunicar com pessoas ASCII Programar em MIPS estrutura, input e output Programar em MIPS
Introdução à Programação
Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos [email protected] Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de
Linguagem C. Prof.ª Márcia Jani Cícero
Linguagem C Prof.ª Márcia Jani Cícero A estrutura Básica de um Programa em C Consiste em uma ou várias funções ou programas. main( ) // primeira função a ser executada // inicia a função // termina a função
Lista de Revisão para a Primeira Avaliação
Lista de Revisão para a Primeira Avaliação 1. Explique a diferença entre as instruções add e addi. Qual formato de instrução cada uma delas utiliza? 2. Quantos bits a instrução j reserva para o endereço
Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.
1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras
Algoritmos II prof. Daniel Oliveira
Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 - Gabarito 1. Um programa P foi compilado com
ponteiros INF Programação I Prof. Roberto Azevedo
ponteiros INF1005 -- Programação I -- 2016.1 Prof. Roberto Azevedo [email protected] ponteiros tópicos o que são ponteiros operadores usados com ponteiros passagem de ponteiros para funções referência
Sistemas Operacionais e Introdução à Programação. Programação com linguagem C
Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro
Procedimentos e Gestão de Subrotinas
5 Procedimentos e Gestão de Subrotinas Wait a minute, Doc. Are you telling me you built a time machine out of a DeLorean? Marty McFly para o Dr. Brown no filme de 1985, Back to the future O desenho de
INF 1620 P1-04/10/03 Questão 1 Nome:
INF 1620 P1-04/10/03 Questão 1 a) Implemente uma função para calcular as raízes de uma equação do segundo grau do tipo ax 2 +bx+c=0. O protótipo dessa função deve ser: void raizes (float a, float b, float
Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 1o. Semestre de 2017 Prof.
Universidade Federal de Uberlândia Faculdade de Computação GGI030 Programação Orientada a Objetos 1o. Semestre de 2017 Prof. Renato Pimentel Prática 02 Java básico Atividade individual. Crie um novo projeto
1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Faculdade de Computação
Faculdade de Computação Programação Procedimental 1 o Laboratório de Programação C Prof. Cláudio C. Rodrigues 1. Introdução O objetivo desta aula prática é exercitar o uso de variáveis de vários tipos
Faculdade de Computação
Problemas: Faculdade de Computação Arquitetura e Organização de Computadores 2 1 a Laboratório de Programação MIPS entrega 18/04/2016 Prof. Cláudio C. Rodrigues P1) Considere que você é um projetista da
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008 Introdução O objetivo desta aula prática é exercitar comandos de entrada e saída simples
a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização. Resposta:
UNIVERSIDADE FEDERAL FLUMINENSE INSTITUTO DE COMPUTAÇÃO DEPARTAMENTO DE CIÊNCIA DA COMPUTAÇÃO Sistemas de Computação 2016.2 Profa.: Simone Martins Lista 1 - Gabarito 1. Um programa P foi compilado com
INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1
INF1007: Programação 2 0 Revisão 06/08/2015 (c) Dept. de Informática - PUC-Rio 1 Tópicos Principais Variáveis e Constantes Operadores e Expressões Entrada e Saída Tomada de Decisão Construção com laços
Aula 06 Introdução à Programação Matrizes
Aula 06 Introdução à Programação Matrizes Prof. Gustavo Callou [email protected] [email protected] Roteiro Matrizes Unidimensionais (Vetor) Bidimensionais String Exercícios Gustavo Callou DEINFO/UFRPE
Introdução a Programação de Jogos
Introdução a Programação de Jogos Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição
LINGUAGENS DE PROGRAMAÇÃO
LINGUAGENS DE PROGRAMAÇÃO Caderno de Exercícios - 2002 Engenharia Informática Engenharia Electrotécnica Informática de Gestão Paulo Gouveia Nuno Dinis M. João Barros Halestino Pimentel Escola Superior
1 Exercícios com ponteiros
Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Oitava Aula Prática - 29 de outubro de 2010 O objetivo desta aula prática é exercitar ponteiros e funções. 1 Exercícios com ponteiros
Faculdade de Computação
Faculdade de Computação Arquitetura e Organização de Computadores 1 Prática 2 entrega 10/05/2019 Prof. Cláudio C. Rodrigues Programando a Arquitetura MIPS P1) Traduza os códigos de máquina a seguir para
7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7)
7 a Lista de Exercícios Assunto: Funções e passagem por referência com vetor e matriz (Tópico 7) Essa lista de exercícios tem como objetivo principal desenvolver algoritmos a partir dos conteúdos abordados
Introdução à Programação
Introdução à Programação Introdução a Linguagem C Construções Básicas Programa em C #include int main ( ) { Palavras Reservadas } float celsius ; float farenheit ; celsius = 30; farenheit = 9.0/5
Revisão da Linguagem C Prof. Evandro L. L. Rodrigues
SEL0433 Aplicação de Microprocessadores I Revisão da Linguagem C Prof. Evandro L. L. Rodrigues Estrutura de um programa C Diretivas de pré processamento Declaração de variáveis globais Declaração de protótipos
Introdução à Programação em C (I)
Introdução à Programação em C (I) IAED Tagus, 2009/2010 Organização de Ficheiros em C Organização Típica de Ficheiros em C Inclusão de bibliotecas de sistema Inclusão de bibliotecas locais Definição de
Introdução à Programação em C Input / Output
Introdução à Programação em C Input / Output Resumo Aula Anterior Programa começa com função main() Sintaxe para definição de funções Definição de variáveis e atribuições Estruturas de controlo if-then
Ficha 1 Noções de sequência e decisão em algoritmia
Ficha 1 Noções de sequência e decisão em algoritmia 1. Ler uma temperatura em Celsius e converter para Fahrenheit. Elabore o algoritmo e especifique as estruturas de dados necessárias para a resolução
Disciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Aula Passada Prática com declaração e inicialização de variáveis Capacidade de representação (estouro de representação) Tamanho ocupado pela variável na memória (comando
Disciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Aula Passada 1º Programa: olamundo.c #include // biblioteca padrão de E/S /* Programa Olá Mundo */ int main(void) { printf( Olá mundo\n ); //exibe Olá mundo
Linguagem C Princípios Básicos (parte 1)
Linguagem C Princípios Básicos (parte 1) Objetivos O principal objetivo deste artigo é explicar alguns conceitos fundamentais de programação em C. No final será implementado um programa envolvendo todos
Vetores e Matrizes. Prof. Fabrício Olivetti de França Charles Henrique
Vetores e Matrizes Prof. Fabrício Olivetti de França Charles Henrique Vetores Estáticos Um vetor em C é declarado como: tipo nome[tamanho]; 2 Vetores Estáticos /* vetor de nome v1 com 100 elementos do
Linguagem de Programação C
Linguagem de Programação C Aula 08 Diogo Pinheiro Fernandes Pedrosa Universidade Federal Rural do Semiárido Departamento de Ciências Exatas e Naturais 13 de novembro de 2009 Introdução O que é uma linguagem
Caracteres e Cadeias de Caracteres
Caracteres e Cadeias de Caracteres INF1005 Programação I Prof. Hélio Lopes [email protected] sala 408 RDC 1 caracteres e cadeias de caracteres tópicos caracteres cadeias de caracteres (strings) vetor
Ficheiros de texto 1. Ficheiros de texto. 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro.
Ficheiros de texto 1 Ficheiros de texto 1. Implementar um programa que leia uma frase do teclado e a escreva num ficheiro. 2. Implementar um programa que procure num ficheiro uma palavra lida do teclado.
PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR
PARTE II - CONJUNTO DE INSTRUÇÕES ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR Introdução Instruções são representadas em linguagem de máquina (binário) E x i s t e m l i n g u a g e n
Organização e Arquitetura de Computadores I
Organização e Arquitetura de Computadores I Linguagem de Montagem Slide 1 Operações Lógicas Embora os primeiros computadores se concentrassem em words completas, logo ficou claro que era útil atuar sobre
Escreva um programa em código assembly correspondente ao seguinte programa C.
Exercício 11.1 Escreva um programa em código assembly correspondente ao seguinte programa C. cont=0; for (n=0; n
Microprocessadores I ELE Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios
Microprocessadores I ELE 1078 Aula 7 Conjunto de Instruções do Microprocessador 8085 Desvios Grupos de Instruções do 8085 As instruções no 8085 são distribuídas em 5 grupos: 1. Grupo de transferência da
Guia Rápido MIPS. Tipos de Dados e Formatações
Tipos de Dados e Formatações Guia Rápido MIPS Tipos de Dados: Todas as instruções são de 32 bits Byte = 8 bits Halfword = 2 bytes Word = 4 bytes Um caractere ocupa 1 byte na memória Um inteiro ocupa 1
Exercícios resolvidos (aula de 4 de Maio) Resolução:
Exercícios resolvidos (aula de 4 de Maio) 1. Um microprocessador gera endereços de memória de 14 bits. Desenhe um mapa de memória dos seus endereços de memória fronteira especificados em hexadecimal. Uma
Capítulo 1: Introdução à Linguagem C. Pontifícia Universidade Católica Departamento de Informática
Capítulo 1: Introdução à Linguagem C Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso caso, a linguagem C.
Introdução à Programação em C
Introdução à Programação em C Tipos e Operadores Elementares Estruturas de Controlo Resumo Novidades em C Exemplo: Factorial Tipos de Dados Básicos Saltos Condicionais: if-then-else Valor de retorno de
Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO
Linguagem de Montagem Prof. Marcos Quinet Universidade Federal Fluminense UFF Pólo Universitário de Rio das Ostras - PURO 1 Introdução Independente da linguagem de programação utilizada, todo programa
Introdução a Computação
Introdução a Computação Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Programação Programa é um algoritmo escrito em uma linguagem de programação. Existem diversas linguagens
Estruturas de controlo condicional
4 Estruturas de controlo condicional Would you tell me, please, which way I ought to go from here? That depends a good deal on where you want to get to. said the Cat. I don't much care where said Alice.
Programação Universidade da Beira Interior Departamento de Informática 2007/08
Programação Universidade da Beira Interior Departamento de Informática 1. Faça o fluxograma e o respectivo programa que resolva equações de 2º grau (ax 2 +bx+c=0). O programa deverá pedir ao utilizador
PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S
PROGRAMAÇÃO I VA R I Á V E I S, C O N S TA N T E S, O P E R A D O R E S E N T R A DA E S A Í DA D E DA D O S Variáveis 2 Variáveis são locais onde são armazenados os valores na memória. Toda variável é
TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO
TÉCNICAS DE LINGUAGEM DE PROGRAMAÇÃO Ponteiros Definição Variável: área de memória que armazena dados de um certo tipo. Na memória, toda variável possui um endereço. Um Ponteiro é uma variável especial
Modulo 4: while do while (limites de variáveis)
PROGRAMAÇÃO DE COMPUTADORES V - TCC- 00.323 Modulo 4: while do while (limites de variáveis) Aura - Erick [email protected], [email protected] Roteiro Até aqui apreendemos as estruturas: If e If...else Switch
Programação Estruturada
Programação Estruturada Recursão Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Recursão Recursão 1 Recursão 2
Conjunto de Instruções. Prof. Leonardo Barreto Campos 1
Conjunto de Instruções Prof. Leonardo Barreto Campos 1 Sumário Introdução; CISC; RISC; MIPS; Representação de Instruções; SPIM; Prof. Leonardo Barreto Campos 2/58 Sumário Operações Lógicas; Instruções
Introdução à Programação em C (I)
Introdução à Programação em C (I) Factorial Definição de função para cálculo de factorial Scheme (define (factorial n) (if (= n 1) 1 (* n (factorial (- n 1))))) C int factorial (int n) { if (n == 1) return
Linguagens de Programação
Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas
Métodos Computacionais
Métodos Computacionais Objetivos da Disciplina e Introdução a Linguagem C Construções Básicas Objetivos da Disciplina Objetivo Geral Discutir técnicas de programação e estruturação de dados para o desenvolvimento
Tratamento de Caracteres
Tratamento de Caracteres Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan A tabela ASCII Se os computadores manipulam apenas números, como eles podem armazenar os caracteres de um nome
Introdução à Programação. Strings
Introdução à Programação Strings Sumário Caracteres (ASCII) Exercícios Vectores de caracteres Strings Exercícios Definição Uma string é um conjunto de caracteres armazenados num vector. Em C, o vector
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição
Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Condicionais e de Repetição 1 Comando while Deseja-se calcular o valor de: 1 + 2 + 3 +... + N. Observação: não sabemos, a priori, quantos termos
Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU
Aula 5 Oficina de Programação Introdução ao C Profa. Elaine Faria UFU - 2017 Linguagem de Programação Para que o computador consiga ler um programa e entender o que fazer, este programa deve ser escrito
Arquitectura de Computadores ARQC MIPS. Serviços de Sistemas Exemplos. Serviços de Sistema
Arquitectura de Computadores ARQC MIPS Serviços de Sistemas Exemplos Serviços de Sistema Exemplo 1 Somar duas variáveis veis em um registrador register int a=1, b=3, c; c = a + b; (usar os códigos c de
1. Faça um programa que leia uma string digitada pelo usuário e salve em um arquivo em branco.
Segunda lista de exercícios v100 Engenharia Elétrica - Eletrônica 2º Semestre de 2015 Prof: Daniel Rodrigo Ferraz Bonetti SSC0300 Linguagem de Programação e Aplicações 1 Faça um programa que leia uma string
Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: funções
Universidade Federal de Uberlândia Faculdade de Computação Linguagem C: funções Prof. Renato Pimentel 1 Subprogramas Subprograma: programa que auxilia o programa principal na realização de uma determinada
