PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010
|
|
- Maria das Neves Tomé Campelo
- 6 Há anos
- Visualizações:
Transcrição
1 Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 2º semestre Trabalho nº 6 Strings e Apontadores Paulo da Fonseca Pinto Luis Bernardo
2 1 Introdução Nos capítulos 7 e 8 do livro Linguagem C de Luís Damas, recomendado para a disciplina de Programação de Microprocessadores, são apresentados respectivamente as strings e os apontadores. Esta aula visa consolidar estas matérias através de um conjunto de exercícios. Faça todos os exercícios pedidos em ficheiros separados e GUARDE O CÓDIGO desenvolvido na memória USB. Durante a aula o docente pode pedir-lhe para mostrar o código desenvolvido. 2 Coisas práticas sobre strings O que é uma string? As strings NÃO EXISTEM! São apenas um conceito. Uma string é um conjunto de caracteres que acaba quando se encontrar o carácter \0. Baseado nisto, normalmente as funções que tratam de strings nem têm necessidade de saber o comprimento da string vão andando até encontrar o carácter \0. Uma questão muito importante é saber que memória é que a string vai ocupar. Temos um problema grave pois não sabemos o seu comprimento Nesta altura da disciplina de Programação de Microprocessadores isto é um problema muito grave. Tão grave que não vamos tratá-lo e para nós as strings vão estar sempre guardadas num vector (de caracteres) que vai ter um tamanho tão grande que a string vai sempre lá caber e assim não nos traga mais problemas. Por exemplo, podíamos ter um vector de caracteres e o carácter \0 irá aparecer sempre antes do fim, não causando problemas. Claro que isto não é muito eficiente, mas 3 Trocas e baldrocas Vamos fazer um programa que começa simples e se vai completando (complicando). Temos de começar logo de um modo muito geral para ir podendo aproveitar tudo o que formos programando à medida que o programa se completa (complica). Os apontadores vão ser preciosos nisto. 3.1 A ESTRUTURA DO PROGRAMA E EVOLUÇÃO O nosso programa vai inicializar uma string e depois tem a hipótese de mudar uma palavra por outra. Na primeira versão as palavras têm de ter o mesmo comprimento, mas depois podem ter comprimentos diferentes. Na versão final existe uma lista de palavras a substituir. A figura em baixo mostra a evolução das três versões 2
3 Considere a string Esta é uma longa string de caracteres 1ª versão mudar longa por curta Esta é uma curta string de caracteres 2ª versão mudar longa por comprida Esta é uma comprida string de caracteres 3ª versão mudar longa por transformação string por muita de caracteres por louca Esta é uma transformação muita louca A estrutura do programa vai mudar ligeiramente com as versões, mas vamos começar com a seguinte que tem as seguintes características. O máximo do texto é de caracteres (menos um por causa do \0 ). Não existem palavras com mais de 80 caracteres. Existe uma matriz, chamada de chave, para o conjunto de palavras a substituir. Na primeira e segunda versão vamos usar apenas a primeira linha, claro. A matriz colocar contém as novas palavras a colocar em vez das outras. Se compilar o código da página seguinte não deve ter erros, mas claro que não executa o que se pretende pois algumas funções estão vazias. Comece por escrever a função le_texto. Talvez uma boa dica seja escrever a função de tal maneira que pergunte primeiro se o utilizador quer usar um texto prédefinido. Se sim, preenche o vector text com um texto qualquer. Assim, o programador não perde muito tempo a introduzir textos nesta fase inicial de desenvolvimento. Se não, o utilizador escreve o texto. Teste o programa para ver se faz o que pretende. Como as outras funções não existem, também não fazem mal. Vamos agora ler os textos a substituir na função ler_substituicoes. A ideia pode ser pedir linha a linha pois pode ser mais do que uma palavra. Assim, para ficar mais simples, a função pode fazer o seguinte (no caso de se ter pedido duas substituições): Introduza o 1º texto a retirar: longo Introduz o 1º texto a colocar: comprido Introduza o 2º texto a retirar: de strings Introduza o 2º texto a colocar: muita Uma boa ideia é a função terminar escrevendo as várias frases para termos a certeza que foram lidas como deve de ser Mais tarde, quando já tiver confiança no código, retiram-se essas instruções de escrita para o programa não escrever demasiadas coisas. 3
4 #include <stdio.h> #include <ctype.h> /* define isspace */ #include <string.h> #define bool int #define TRUE 1 #define FALSE 0 #define MAX_WORD_LENGTH 81 #define MAX_WORD 10 #define MAX_TEXT_LENGTH 8000 int quantas_palavras () { int num; do { scanf(" %d", &num); if ((num < 1) (num > MAX_WORD)) printf("o número de palavras deve ser > 0 e < %d!\n", MAX_WORD); while ((num < 1) (num > MAX_WORD)); return num; void ler_substituicoes (int num, char chave[][max_word_length], char colocar[][max_word_length]) { bool le_texto(char * text, int maximo) { void substitui_texto(int num, char chave[][max_word_length], char colocar[][max_word_length], char * text, char * text_changed) { main() { int n_word= 0; // Número de palavras no array word char chave[max_word][max_word_length]; // Palav a substituir char colocar[max_word][max_word_length]; // Substituições char text[max_text_length]; // Texto inicial char text_changed[max_text_length]; // Texto modificado printf("quantas palavras tem a lista de substituicao?\n"); n_word = quantas_palavras (); printf("introduza as palavras a retirar e quais a colocar\n"); ler_substituicoes(n_word, chave, colocar); printf("introduza o texto a substituir. "); printf("termine com uma linha apenas com um ponto final:\n"); if (!le_texto(text, MAX_TEXT_LENGTH)) { printf("não foi introduzido texto\n"); return; substitui_texto(n_word, chave, colocar, text, text_changed); printf("o texto inicial eh:\n%s\n", text); printf("o texto substituido eh:\n%s\n", text_changed); 4
5 3.2 1ª E 2ª VERSÕES Já deve ter reparado por esta altura que a 1ª e a 2ª versões se podem fazer ao mesmo tempo pois o facto do tamanho das frases a retirar e das frases a colocar serem iguais ou não, é irrelevante. Estamos a trabalhar com strings!... Para substituir alguma coisa ela tem de existir. Para além disso, fazer n substituições pode ser feito fazendo n vezes uma substituição. Assim a função substitui_texto recebe uma matriz, mas pode chamar outra que faz, de facto, a substituição e envia para essa outra, vector a vector (1º, 2º, etc.). É esta segunda função que vai custar mais a fazer. A 3ª versão do problema é apenas chamar esta função mais vezes. Bem pensado, não é? A função tem de começar por ver se o texto existe. Faça a rotina em vez de usar uma já existente nas bibliotecas do C. Vá sempre comparando o texto de chave com o texto de text. Se começar a estar em consonância das três uma: 1. ou deixa de estar e continua-se para outra; 2. ou atingiu-se o \0 só em text e significa que o texto acabou e não chegou a ser igual; 3. ou atingiu -se o \0 só em chave e existe de facto texto igual que começa onde se começou a comparação positiva e acaba onde estamos agora. Para não estragar toda a beleza de programar, não se dão mais dicas ª VERSÃO Faça a 3ª versão. Hein? Sem dicas 4 Será que a palavra existe? Para nos familiarizarmos com apontadores vamos considerar que existem muitas strings (por exemplo, m strings). Cada string começa num certo sítio de memória e contém um texto. Vamos também considerar que existem muitas palavras (por exemplo, n palavras) que podem ser usadas para ver se elas estão presentes nas strings. Essas palavras também estão colocadas algures na memória. Finalmente existem duas posições de memória onde vão ser colocados os endereços de uma das palavras e de uma das strings, que foram escolhidas pelo utilizador para ver se a respectiva string tem a respectiva palavra. O modo como o utilizador escolhe a string e a palavra é dando o seu número (de 0 a m e de 0 a n). Claro que teremos de usar apontadores para colocar a escolha do utilizador, ou não fosse esta uma aula de apontadores!!!!!!!!!!!!!! A figura da página seguinte tenta mostrar de um ponto de vista pictórico o problema, pois os apontadores são um pouco mais difíceis de entender. A figura contém strings, apontadores para char e inteiros. Veja o que é o quê antes de continuar a ler. Quando se programa com apontadores é muitas vezes benéfico fazer desenhos para se perceber o que aponta para quê. Não se esqueça de fazer isso com os seus programas 5
6 Assim, existem muitos apontadores para char (point_1 n) que contêm as posições das várias strings, existem muitos apontadores para char (word_1 n) que contêm as posições das várias palavras, e existem ainda dois apontadores para apontadores para char (frase e palavra) e dois inteiros onde são colocados os números de sequência que o utilizador escolheu para as strings e palavras. This is a string that contains a dog and a cat The dog was eating with the horse The camel drunk all the water The mouse entered into the pipe Este é um string que pode conter dog ou camel The horse is bigger than the dog horse mouse dog cat point_1 point_2 point_n word_1 word_2 word_m camel frase palavra Num. ordem da frase Num. ordem da palavra gedit). Comece o programa a partir do seguinte código (copie-o para o crimson ou 6
7 Este exemplo parece complicado, mas programar com apontadores é sempre um pouco diferente. Este exemplo serve para ver se percebe este modo de programar. Se pedir ajuda a um amigo ou a um docente ser-lhe-á dada a resposta nesse instante (pois este problema é trivial) e perdeu uma boa oportunidade de pensar, testar e aprender! Descanse que não estraga o computador se cometer um erro com os apontadores /* * Ficheiro frases.c */ #include <stdio.h> #include <string.h> #define bool int #define TRUE 1 #define FALSE 0 #define MAX_WORD_LENGTH 21 #define MAX_TEXT_LENGTH 81 #define MAX_WORD 20 código aqui main() { char nome1 [MAX_TEXT_LENGTH] = "A string that contains a dog and a cat"; char nome2 [MAX_TEXT_LENGTH] = "A string that contains camel and mouse"; char nome3 [MAX_TEXT_LENGTH] = "The dog was eating with the horse"; char nome4 [MAX_TEXT_LENGTH] = "The camel drunk all the water"; char nome5 [MAX_TEXT_LENGTH] = "The mouse entered into the pipe"; char nome6 [MAX_TEXT_LENGTH] = "Uma string que pode conter dog ou camel"; char nome7 [MAX_TEXT_LENGTH] = "The horse is bigger than the dog"; char palavra1 [MAX_WORD_LENGTH] = "dog"; char palavra2 [MAX_WORD_LENGTH] = "horse"; char palavra3 [MAX_WORD_LENGTH] = "cat"; char palavra4 [MAX_WORD_LENGTH] = "mouse"; char palavra5 [MAX_WORD_LENGTH] = "camel"; char palavra6 [MAX_WORD_LENGTH] = "pig"; char *points [MAX_WORD]; // para apontar a frases char *words [MAX_WORD]; // para apontar a palavras char ** frase_actual, ** palavra_actual; int num_frase, num_palavra; // para conter a escolha do util. points [0] = nome1; points [1] = nome2; points [2] = nome3; points [3] = nome4; points [4] = nome5; points [5] = nome6; points [6] = nome7; words [0] = palavra1; words [1] = palavra2; words [2] = palavra3; words [3] = palavra4; words [4] = palavra5; words [5] = palavra6; while (1) { escolha (&num_frase, &num_palavra); código_aqui ver_se_contem (frase_actual, palavra_actual); 7
8 A função ver_se_contem deve escrever a frase e a palavra escolhida antes de escrever a resposta a dizer sim ou não. Repare que este programa nunca acaba. Tem de ser abortado. Pode sempre modificá-lo para o utilizador escrever um carácter de saída. Repare também que programar com apontadores é bastante versátil mas muito perigoso. Tomando como exemplo o nosso programa, se o utilizador escolher, por exemplo, o número de sequência 26 vamos para a uma zona de memória proibida. Tente fazer isso para ver como o computador reage a um erro desses. Claro que num programa tão simples como este é sempre possível perguntar se a opção está dentro do intervalo permitido. Ora, em programas mais complicados, com uso de apontadores para entidades mais complexas, tais testes são impossíveis de fazer É preciso saber mesmo o que se está a fazer. Vai ver que quando estiver mais experiente em programação e em C não vai prescindir da liberdade e versatilidade que os apontadores dão!... 8
PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Trabalho nº 5 Funções http://tele1.dee.fct.unl.pt/pm
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 2º semestre Trabalho nº 5 Funções e Vectores
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Funções e Vectores http://tele1.dee.fct.unl.pt
Leia mais1 Introdução. 2 Algumas funções úteis para lidar com strings
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Strings e apontadores http://tele1.dee.fct.unl.pt
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 2º semestre Trabalho nº 3 Testes, condições
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Testes, condições e ciclos http://tele1.dee.fct.unl.pt
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Ficheiros e estruturas http://tele1.dee.fct.unl.pt
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;
Leia maisIntrodução à Programação em C
Introdução à Programação em C Tabelas Resumo Aulas Anteriores Streams de Texto Leitura e escrita de caracteres Caracteres como números inteiros Exemplos Leitura e Escrita de Caracteres Input/Output Leitura
Leia maisLinguagem C: Introdução
Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais
Leia maisLinguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux
Linguagem C Introdução Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux Porquê C em AC? A linguagem C fornece um modelo de programação próximo da máquina física
Leia maisProgramação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Leia maisProgramação 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação. Cap. 7 Arrays. Arrays
5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação Cap. 7 Sumário: Classificação de tipos de dados Características gerais de tipos de dados compostos Definição de array (ou tabela)
Leia maisUNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 Programação em C 30/06/2014 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Qual o objetivo de um
Leia maisProgramação Básica. Estrutura de um algoritmo
Programação Básica Estrutura de um algoritmo Código-fonte Como vimos na aula anterior um algoritmo pode ser representado usando um fluxograma Um algoritmo pode também ser representado usando texto Esse
Leia maisSumário. Ficheiros. Ficheiros
Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções
Leia maisComputação e Programação Exame Época de recurso
Nome : Número : Computação e Programação 2013-2014 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de recurso 29 de Janeiro de 2014 v
Leia maisProgramação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre
Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Manipulação de ficheiros de texto Programação 2010/2011 IST-DEEC Manipulação de Ficheiros 1 Sumário Ficheiros
Leia mais1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível?
P1 Conceitos (2,4 valores) 1.a) Qual a diferença entre uma linguagem de programação de alto nível e uma linguagem de programação de baixo nível? (0.8v) 1.b) Indique três vantagens de criar um programa
Leia maisVariáveis, Tipos de Dados e Operadores
! Variáveis, Tipos de Dados e Operadores Engenharias Informática Aplicada 2.o sem/2013 Profa Suely (e-mail: smaoki@yahoo.com) VARIÁVEL VARIÁVEL É um local lógico, ligado a um endereço físico da memória
Leia maisPonteiros. Baseado nos slides do Prof. Mauro.
Baseado nos slides do Prof. Mauro. A memória do computador é uma sequência de bytes, na qual endereçamos cada um sequencialmente. Como vimos, uma variável é uma região da memória que reservamos para armazenar
Leia maisWorking 03 : Conceitos Básicos I
Working 03 : Conceitos Básicos I Objetivos: Dominar os conceitos básicos da linguagem de programação C; Aprender a utilizar o compilador, identificando os erros de sintaxe do código fonte; Prazo de Envio:
Leia maisPROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C
PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 Instruções de Entrada Entrada/Leitura de dados Introduzir um valor inteiro/real para X 2 Instruções de Entrada Entrada/Leitura de dados Introduzir um valor inteiro/real
Leia maisIntroduçã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
Leia maisIntroduçã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
Leia maisConhecendo a Linguagem de Programação C
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Conhecendo a Linguagem de Programação C DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Como
Leia mais4 a Aula - Funções de Intervalo (II). Ciclo for. Leitura e Escrita em Ficheiros. Mestrado em Engenharia Física Tecnológica
4 a Aula - Funções de Intervalo (II). Ciclo for. Leitura e Escrita em Ficheiros. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física
Leia maisIntrodução à Programação. Ciclos 2ª parte
Introdução à Programação Ciclos 2ª parte Sumário Ciclos do while for Exercícios Ciclos (while) while ( ) ; Enquanto for diferente de zero ou verdadeira, é
Leia maisLINGUAGEM DE PROGRAMAÇÃO C AULA 2. Professor: Rodrigo Rocha
LINGUAGEM DE PROGRAMAÇÃO C AULA 2 Professor: Rodrigo Rocha TIPOS, VARIÁVEIS E CONSTANTES Tipos de Dados Variáveis Constantes Introdução a entrada e saída Printf Scanf Ferramentas: Dev-C++ Code::Blocks
Leia maisProgramação de Computadores II
Programação de Computadores II Aula de Revisão 01 Karina Mochetti 2019.1 Formato da Prova Questões teóricas. Escrever um programa do zero. Dar valores finais de variáveis. Completar um programa. Achar
Leia mais... Subprogramas Após fazer as tarefas previstas o nosso programa devolve o comando ao sistema operativo. Isto está numa hierarquia onde o nosso progr
26 - Subprogramas Executar um programa é pedir ao sistema operativo (que é o programa principal de um computador) que passe o comando do computador para o nosso programa. ... Subprogramas Após fazer as
Leia maisDisciplina de Algoritmos e Programação
Disciplina de Algoritmos e Programação Último Conteúdo Estruturas de condição Estrutura condicional simples Utilização da estrutura de condição if com expressões lógicas simples Utilização do comando if
Leia maisNome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas
Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 10 de janeiro de 2018 Exame sem
Leia maisProgramação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação
Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre TRABALHO FINAL DE AVALIAÇÃO Gestão
Leia maisIntroduçã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
Leia maisAula 3 Constantes e funções de E/S
Programação I Aula 3 e funções de E/S Prof. Laura Silva de Assis e Prof. Luis Carlos Retondaro Engenharia de Computação 2o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca
Leia mais1 a Frequência
1 a Frequência 28-10-2009 Programação de Computadores sem consulta Versão A Duração: 1h20m Nome: N o : Nas questões 1, 2, 3 e 4 responda sobre o enunciado que deverá ser entregue junto com a prova. 1.
Leia maisVetores II. Strings Leitura e exibição Biblioteca string.h Operações com Strings. Matrizes Definição de Acesso Operações com Matrizes
Strings Leitura e exibição Biblioteca string.h Operações com Strings Matrizes Definição de Acesso Operações com Matrizes Utilidade da String Facilidade de manipulação de um grande conjunto de caracteres
Leia maisInformática para Ciências e Engenharias 2014/15. Teórica 7
Informática para Ciências e Engenharias 2014/15 Teórica 7 Na aula de hoje... Controlo de execução ciclos condicionais while end Exemplos raiz quadrada histograma fórmula química while while e matrizes
Leia maisCOMANDOS DE CONTROLE DE FLUXO. Luís Charneca.
COMANDOS DE CONTROLE DE FLUXO Luís Charneca luis.charneca@gmail.com O Comando IF (1) Os comandos de controle de fluxo são aqueles que permitem ao programador alterar a sequência de execução do programa.
Leia maisUNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2011/2012
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2011/2012 Introdução à Programação em C 31/01/2012 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Explique
Leia maisPonteiros e Tabelas. K&R: Capítulo 5
Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros
Leia maisLinguagem C Ficheiros Compilação Separada
Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir
Leia maisModularidade - Funções e Procedimentos
Modularidade - Funções e Procedimentos José Gustavo de Souza Paiva Problema Em diversas situações, é preciso executar uma tarefa específica diversas vezes em um programa, variando apenas os dados de entrada
Leia maisLinguagem C. André Tavares da Silva.
Linguagem C André Tavares da Silva dcc2ats@joinville.udesc.br Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser
Leia maisPROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008
Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008 Mestrado Integrado em Engenharia Electrotécnica e Computadores 1º ano 1º semestre Estruturação de código e outros
Leia maisIntrodução à linguagem C
Introdução à linguagem C Luís Charneca luis.charneca@gmail.com Introdução ao C O C nasceu na década de 70. O seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 correndo
Leia maisPROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C
PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C 1 Implementações básicas: a) Implementar o procedimento LerMatriz que preenche uma matriz de L linhas por C colunas de inteiros (L, C 1); b) Implementar o procedimento
Leia maisIntrodução a linguagem C. Introdução à Programação 06/07
Introdução a linguagem C Introdução à Programação 06/07 A LINGUAGEM DE PROGRAMAÇÃO C A linguagem C foi criada, na década de setenta, por Dennis M. Ritchie; Apesar de se considerar uma linguagem de alto
Leia maisIntrodução à Programação C
Introdução à Programação C Fabio Mascarenhas - 2014.2 http://www.dcc.ufrj.br/~fabiom/introc Recapitulando Um programa C é uma sequência de diretivas (#include e #define), declarações de funções auxiliares,
Leia maisIntrodução à Programação. Estruturas de Repetição
Introdução à Programação Estruturas de Repetição Repetição de Comandos i 0 int somatorio(int n) { int soma = 0; int i = 0; soma = soma + i; i++; soma = soma + i; i++; soma = soma + i;... n i Faz esta seqüência
Leia maisAULA 2: INTRODUÇÃO A PYTHON. Luís Feliphe Silva Costa
AULA 2: INTRODUÇÃO A PYTHON Luís Feliphe Silva Costa Sumário Variáveis simples Entrada e Saída de dados Operadores Estruturas Condicionais Estruturas de repetição Funções Tratamento de erros Variáveis
Leia maisIntrodução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes
Introdução à Programação Introdução a Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Introdução Variáveis Tipos de dados Operadores e Expressões: Operadores
Leia maisApontadores/ponteiros
Apontadores/ponteiros 1 Apontadores/ponteiros 1. Um ponteiro pode ser manipulado como sendo um vetor. #include int v[5] = { 10, 20, 30, 40, 50 ; int p, i; p = v; for (i = 1; i < 5; i++) printf
Leia maisIntrodução à Programação
Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de
Leia mais#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C
#include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que
Leia maisInformática para Ciências e Engenharias 2013/14. Teórica 7
Informática para Ciências e Engenharias 2013/14 Teórica 7 Na aula de hoje... Controlo de execução ciclos condicionais while end Exemplos raiz quadrada histograma fórmula química while while e matrizes
Leia maisAula 1 Apresentação do Curso
Departamento de Sistemas de Computação Universidade de São Paulo SSC 502 Laboratório de Introdução a Ciência de Computação I Aula 1 Apresentação do Curso Responsável Prof. Seiji Isotani (sisotani@icmc.usp.br)
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação MIEA 1º Semestre Frequência Resolução 13/12/2016 1. Escreva uma expressão lógica em linguagem C para cada uma das seguintes condições: (a) o valor da variável
Leia maisAula 3:Introdução à Linguagem C
MINISTÉRIO DA EDUCAÇÃO SECRETARIA DE EDUCAÇÃO PROFISSIONAL E TECNOLÓGICA INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE SANTA CATARINA CAMPUS JOINVILLE DEPARTAMENTO DO DESENVOLVIMENTO DO ENSINO
Leia maisEngenharia de Software
Sumário Engenharia de Software Modelos de desenvolvimento de software Fases de desenvolvimento Programação modular Abordagem top-down e bottom-up Linguagens de programação: Compilação / Interpretação Aplicação
Leia maisConceitos básicos. Computação eletrônica: Gurvan Huiban
Computação eletrônica: Conceitos básicos Gurvan Huiban ghuiban@cin.ufpe.br Plano de aula 1 Estrutura de um programa em C 2 Variáveis e constantes 3 Comandos de entrada e saída Estrutura de um programa
Leia maisINSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem
Leia maisIntrodução à Programação. Ciclos 1ª parte
Introdução à Programação Ciclos 1ª parte Sumário Ciclos while Exercícios com instruções condicionais e ciclos Ciclos (while) while ( ) ; Enquanto for diferente de zero
Leia maisEXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO
Leia maisVetores são estruturas indexadas utilizadas para armazenar dados de um mesmo tipo: int, char, float ou double. Oexemploaseguirédeumvetordeinteiros:
18 Vetores Ronaldo F. Hashimoto e Carlos H. Morimoto Nessa aula vamos introduzir o tipo vetor. Aofinaldessaaulavocêdeverásaber: Descrever o que são vetores na linguagem C. Declarar vetores. Como acessar
Leia maisIntrodução à Programação
Introdução à Programação 1.Ano LCC-MIERSI DCC - FCUP Nelma Moreira Aula 2 Etapas para o desenvolvimento dum programa 1. Perceber o problema 2. Encontrar um procedimento algorítmico para o resolver. Estratégias:
Leia maisComputação 2. Aula 5. Profª. Fabiany defines vetor, strings e matriz por parâmetros de função
Computação 2 Aula 5 defines vetor, strings e matriz por parâmetros de função Profª. Fabiany fabianyl@utfpr.com.br #define A diretiva #define define um identificador e uma string que o substituirá toda
Leia maisAula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz
Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz Sumário de Aula } Conceito de Memória } Variáveis e Tipos de Dados } Constantes 2 Conceito de Memória } A memória de um computador é
Leia maisAlgoritmos e Introdução à Programação. Lógica e Linguagem de Programação
Algoritmos e Introdução à Programação Lógica e Linguagem de Programação Prof. José Honorato Ferreira Nunes honoratonunes@softwarelivre.org http://softwarelivre.org/zenorato/honoratonunes Linguagem C Prof.
Leia maisTÉ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
Leia maisIntroduçã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
Leia maisNome: Número: Computação e Programação Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas
Nome: Número: Computação e Programação 2017-2018 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época Normal 10 de janeiro de 2018 Exame sem
Leia maisPermite modularidade (dividir programa em partes): Facilita a depuração (debug) e portabilidade.
222222222222222222222222222 8 - FUNÇÕES 81 - Características básicas É um trecho independente de código, com objetivos bem definidos Programas em C, geralmente consistem em várias pequenas funções, ao
Leia maisCurso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM
Curso de C Introdução 1 Introdução Roteiro: Recordando Algoritmos Linguagem de Programação O computador Instruções de Máquina Níveis de Abstração Compilação 2 Algoritmos Recordando: Algoritmo: conjunto
Leia maisProgramação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre. T. 04 Algoritmos e Programação Estruturada
Programação Mestrado Integrado em Engenharia Aeronáutica 1º ano, 1º semestre T. 04 Algoritmos e Programação Estruturada Objectivos: Aprender o conceito de algoritmo e suas características fundamentais
Leia maisLinguagem C++ Estruturas de controle Parte II Estruturas de repetição
Fundamentos de Programação Linguagem C++ Estruturas de controle Parte II Estruturas de repetição Prof. Bruno E. G. Gomes IFRN 1 Estruturas de Controle Permitem o controle da sequência de execução de um
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 2º Semestre Exame Época Norma (15 val) Resolução 22/06/2018 1 [1,00 val + 1,00 val] - Memória Dinâmica Considere as seguintes declarações de variáveis: int
Leia maisAlgoritmos e Programação
Algoritmos e Programação Aula 9 Subalgoritmos, funções e passagem de parâmetros Profa. Marina Gomes marinagomes@unipampa.edu.br 22/06/2017 Engenharia de Computação - Unipampa 1 Modularização Facilita a
Leia maisECT1203 Linguagem de Programação
Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia ECT1203 Linguagem de Programação Prof. Aquiles Burlamaqui Profa. Caroline Rocha Prof. Luiz Eduardo Leite Prof. Luciano Ferreira
Leia mais1ª versão. #include <stdio.h> #include <string.h> #include <stdlib.h> #define maxdiscos 1000
#include #include #include #define maxdiscos 1000 typedef struct { char nomeautor[80]; char nomedisco[100]; int numdiscosvendidos; DISCO; 1ª versão int main() { DISCO listadiscos[maxdiscos];
Leia maisESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2002/ Valores
ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA INTRODUÇÃO À PROGRAMAÇÃO (ENG. INFORMÁTICA) COMPUTADORES E PROGRAMAÇÃO I (ENG. ELECTROTÉCNICA) 2002/2003 TRABALHO PRÁTICO Nº
Leia maisIntrodução. Ponteiros
Introdução O correto entendimento e uso de ponteiros é crítico para um programador C. Há três razões para isso: 1. Ponteiros fornecem os meios pelos quais as funções podem modificar seus argumentos; 2.
Leia mais1 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
Leia maisArquitetura Von Neumann Dados e instruções são obtidos da mesma forma, simplificando o desenho do microprocessador;
1 Microprocessador Um microprocessador é um circuito eletrônico capaz de realizar diversas tarefas conforme os comandos específicos. Para isso ele deve ler esses comandos da memória de programa (ROM) e
Leia maisUniversidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza
Universidade Federal do Espírito Santo Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza Variáveis Tipos de Dados Básicos Formação dos identificadores o nome deve começar com uma letra
Leia maisStrings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.
Introdução Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos. 1 definições Uma string é uma sequência, um conjunto, ou uma cadeia de caracteres.
Leia maisIntroduçã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
Leia maisprim = A ; prim = &A[0];
57 12 - MAIS SOBRE APONTADOR 12.1 - Ponteiros e arrays Em C, ponteiros e matrizes são tratados de maneira semelhante. 12.1.1 - Nome O nome é um ponteiro, ou seja, aponta (contém o endereço) para o primeiro
Leia maisUNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2014/2015
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 1º Semestre 2014/2015 Programação em C 15/01/2015 Resolução 1. Descreva, em Português, cada uma das seguintes declarações em C: 1.1. char str[512]; Array
Leia maisProgramação. Folha Prática 5. Lab. 5. Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved.
Programação Folha Prática 5 Lab. 5 Departamento de Informática Universidade da Beira Interior Portugal 2015 Copyright 2010 All rights reserved. 1. Revisão. 2. Objectivos. 3. Exercícios LAB. 5 5ª semana
Leia maisUNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014
UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 Programação em C 18/06/2014 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Qual o objetivo de uma
Leia maisUNIVERSIDADE 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 Programação de Computadores II para SI Gabarito Lista 3 Profa.: Simone Martins 1. Faça uma função recursiva
Leia maisCOMPUTAÇÃO E PROGRAMAÇÃO
COMPUTAÇÃO E PROGRAMAÇÃO 1º Semestre 2014/2015 MEMec, LEAN Ficha da Aula Prática 1 Exercícios escritos Sumário das tarefas e objectivos da aula: 1. Realizar exercícios escritos, em condições semelhantes
Leia maisUNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação e Algoritmos / Programação II 2º Semestre Exame - 1ª chamada Resolução 20/06/2013 1. [2.0 val] Apontadores (Responder esta questão nesta folha e entregar com
Leia maisComputação e Programação Exame Época de recurso
Nome : Número : Computação e Programação 2013-2014 Mestrado Integrado em Engenharia Civil Licenciatura Bolonha em Engenharia Geológica e de Minas DECivil Exame Época de recurso 29 de Janeiro de 2014 v
Leia maisProgramação. Folha Prática 10. Lab. 10. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.
Programação Folha Prática 10 Lab. 10 Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved. 1. Revisão. 2. Objectivos. 3. Exercícios LAB. 10 10ª semana
Leia maisFUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara
Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos
Leia maisAmbiente de desenvolvimento
Linguagem C Ambiente de desenvolvimento Um programa em C passa por seis fases até a execução: 1) Edição 2) Pré-processamento 3) Compilação 4) Linking 5) Carregamento 6) Execução Etapa 1: Criação do programa
Leia mais