1 Introdução. 2 Algumas funções úteis para lidar com strings

Save this PDF as:
 WORD  PNG  TXT  JPG

Tamanho: px
Começar a partir da página:

Download "1 Introdução. 2 Algumas funções úteis para lidar com strings"

Transcrição

1 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 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, é feita a apresentação das strings e dos apontadores. Esta aula visa consolidar estas matérias através de um conjunto de exercícios. Durante a aula vai ser desenvolvido uma aplicação que troca palavras em várias frases. As primeiras fases têm como objectivo complementar o estudo realizado na aula teórica. A última fase, que corresponde ao programa completo, é avaliada pelo docente. GUARDE O CÓDIGO desenvolvido na memória USB. Este trabalho tem a duração de duas aulas práticas. Durante a próxima aula o docente pode pedir-lhe para mostrar o código desenvolvido, e pode fazer-lhe algumas perguntas. O método de trabalho é nas primeiras fases editar os ficheiros fonte com o código fornecido junto do enunciado, e realizar as modificações pedidas. Na última fase o objectivo é resolver o problema proposto, aplicando os conceitos aprendidos nesta secção da matéria. 2 Algumas funções úteis para lidar com strings O capítulo 7 do livro adoptado na disciplina ilustra um conjunto de funções para manipular strings, fornecendo o código dessas funções. Na realidade, muitas das funções ilustradas estão disponíveis na biblioteca <string.h>, e podem ser usadas desde que se coloque no ficheiro de texto o #include desta biblioteca. Neste trabalho são usadas algumas dessas funções, apresentadas na tabela seguinte. Pode obter informações detalhadas sobre as funções utilizando o comando man na consola. Por exemplo, para saber tudo sobre a função strlen pode usar-se man strlen, utilizando-se a tecla Q para sair do manual. Protótipo int strlen(const char *str); Devolve o número de caracteres da string. Não contabiliza o carácter \0. Na posição str[strlen(str)] a string tem o valor zero ( \0 ). int strcmp(const char *s1, const char *s2); int isspace(int c); Compara as duas strings s1 e s2, retornando ZERO se forem iguais. Pertence à biblioteca <ctype.h> e retorna TRUE se c for um carácter espaço, tabulação vertical ou horizontal, nova linha, etc. Usar man para mais informações. Podem-se ler strings do teclado utilizando a função scanf para ler palavras isoladas (com %s ), ou as funções gets ou fgets para ler linhas inteiras. Embora o livro use a função gets, actualmente não se recomenda a sua utilização pois ela não é segura. Neste trabalho as strings são guardadas em vectores (arrays) de tamanho fixo. Caso alguém introduza no teclado uma string com tamanho superior ao vector, começa-se a escrever fora da memória alocada para a string resultado o programa pode falhar com um erro. Por esse motivo, e seguindo a recomendação em man gets, usa-se a função fgets, onde se especifica quanto espaço há disponível para escrever a string. 2

3 3 Exercícios de aprendizagem Pretende-se desenvolver uma aplicação que substitui, numa frase, certas palavras por outras. Por exemplo, substituir as palavras ananases por limões, e são por estão. Na frase Os ananases são doces ficaria Os limões estão doces. A aplicação deve começar por pedir quantas palavras a trocar tem a lista, e depois lê as palavras, uma a uma, garantindo que não há palavras duplicadas. Para cada palavra, lê a palavra que a substitui. No final, pede uma frase e apresenta a frase com as palavras seleccionadas substituídas. Este trabalho vai ser usado para aprender a trabalhar com strings, pois todas as palavras e textos vão ser guardados sobre a forma de strings. Por outro lado, os apontadores vão ser usados para manipular as strings. 3.1 ESTRUTURAS DE DADOS O primeiro aspecto relevante é definir que estruturas de dados se vão usar para guardar as palavras seleccionadas e as respectivas palavras de substituição. A linguagem C define que strings são arrays de caracteres terminados pelo carácter \0. Assim, para guardar cada palavra individual pode usar-se dois arrays unidimensionais com até MAX_WORD_LENGTH elementos, um com a palavra a substituir, outro com a palavra de substituição. Ambas as palavras não podem ter mais de MAX_WORD_LENGTH-1 caracteres, pois tem de haver sempre espaço para o terminador da string ( \0 == um byte com valor zero). Para guardar até um máximo de MAX_WORD palavras são usados dois arrays bidimensionais de caracteres: respectivamente word e change para as palavras a procurar e as palavras de substituição. O texto inicial e o texto com as palavras substituídas são guardados em arrays com MAX_TEXT_LENGTH caracteres, respectivamente text e text_changed. #define MAX_WORD_LENGTH 81 #define MAX_WORD 10 #define MAX_TEXT_LENGTH 8000 char word[max_word][max_word_length]; char change[max_word][max_word_length]; char text[max_text_length]; char text_changed[max_text_length]; 3.2 EXERCÍCIO DE APRENDIZAGEM: VERSÃO 1 DA APLICAÇÃO Tal como no trabalho anterior, vai-se desenvolver a aplicação a partir da função main, definindo-a como uma sequência de funções de alto nível. No resto do exercício vão programar-se as funções le_todas_palavras, le_texto, e substitui_texto, usadas respectivamente para ler as palavras, ler o texto, e substituir as palavras no texto. #include <stdio.h> #include <ctype.h> /* define isspace */ #include <string.h> #define bool int #define TRUE 1 #define FALSE 0 3

4 #define MAX_WORD_LENGTH 81 #define MAX_WORD 10 #define MAX_TEXT_LENGTH 8000 main() { int n_word= 0; // Número de palavras no array word char word[max_word][max_word_length]; // Palavras a substituir char change[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 substituição?\n"); do { scanf(" %d", &n_word); if ((n_word < 1) (n_word > MAX_WORD)) printf("o número de palavras deve ser > 0 e < %d!\n", MAX_WORD); while ((n_word < 1) (n_word > MAX_WORD)); printf("introduza as listas de palavras a substituir\n"); le_todas_palavras(n_word, word, change); 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, word, change, text, text_changed, MAX_TEXT_LENGTH); printf("o texto substituido é:\n%s\n", text_changed); Se tentar compilar este código, vai ter três erros as três funções que não estão definidas. Comece por definir as três funções que faltam vazias para conseguir compilar este código. Repare que a função le_todas_palavras não retorna nada (void), e recebe como argumento o número de elementos e os dois arrays bidimensionais (array de strings) referidos atrás, que retorna preenchidos. A função le_texto recebe o tamanho do array text, e modifica text preenchendo-o com uma string (um array de caracteres terminado com o carácter \0 ). Retorna TRUE se leu pelo menos um carácter, e FALSE caso contrário. A função substitui_texto não retorna nada recebe os dois arrays com as palavras a substituir e o texto, e escreve a string no argumento text_changed Ler o conjunto de palavras a substituir (le_todas_palavras) A função le_todas_palavras pode ainda ser decomposta na repetição n_word vezes de outra função que lê um conjunto composto por uma palavra única e a palavra a substituir. Concretamente, para a sua realização vamos necessitar de duas funções auxiliares: a função palavra_existe que verifica se uma palavra já está num array, e a função le_palavra que repete um algoritmo já utilizado nos dois trabalhos anteriores repetir a leitura da palavra até conseguir ter uma palavra única. 4

5 Comece por introduzir a função palavra_existe, representada abaixo. Repare que o número de elementos que vão ser testados no vector word_array é passado no parâmetro n_word. Os vectores não têm informação sobre a sua dimensão. bool palavra_existe(char word_array[][max_word_length], int n_word, char word[]) { int i; for (i= 0; i<n_word; i++) { if (!strcmp(word, word_array[i])) // Encontrou a palavra return TRUE; return FALSE; A função le_palavra tem quatro parâmetros. No parâmetro word_array recebe a tabela completa de palavras definidas, e no parâmetro n_word recebe o número de elementos do vector word_array que já estão preenchidos. A função vai ler o novo par de palavras e modifica o parâmetro word com a palavra a modificar, e o parâmetro change com a palavra que substitui a anterior. void le_palavra(char word[], char change[], char word_array[][max_word_length], int n_word) { do { printf("introduza a palavra [%d]: ", n_word); scanf(" %s", word); // Lê uma palavra isolada if (palavra_existe(word_array, n_word, word)) printf("palavra duplicada. "); while (palavra_existe(word_array, n_word, word)); printf("introduza a palavra que substitui '%s':\n", word); scanf(" %s", change); // Lê uma palavra isolada getchar(); // Retira '\n' do buffer Pretende-se agora, que escreva o código da função le_todas_palavras, que vai preencher o vector word_array com n_word palavras, e o vector change com as n_word palavras que as substituem. Por exemplo, change[0] substitui a palavra em word_array[0]. void le_todas_palavras(int n_word, char word_array[][max_word_length], char change[][max_word_length]) { EXERCÍCIO 1: escreva o código desta função! Compile o código desenvolvido, e corra-o verificando se ele detecta nomes duplicados Ler o texto (le_texto) A função le_texto é simples, pois basta ler todo o texto introduzido pelo utilizador linha a linha até aparecer uma linha apenas com um ponto final (. ). No entanto, é conveniente ter o cuidado de não usar mais espaço do que o que está disponível no vector. A função le_texto recebe no parâmetro max_length o espaço ainda 5

6 disponível, e usa a variável inteira cnt como contador de bytes usados. Sempre que lê uma linha, acrescenta o número de bytes lidos a essa variável. Tem de se garantir, claro, que cnt nunca passa max_length.a função retorna TRUE se leu algum carácter, ou FALSE se não leu nenhum carácter. O texto vai sendo colocado em mensagem. Repare que o preenchimento do vector é feito linha a linha de texto: o apontador pt começa a apontar para o primeiro byte do vector mensagem; a cada nova linha acrescentada o apontador pt é colocado a apontar para o terminado da string (carácter \0 ). Desta forma, quando se lê uma nova linha, esta linha é acrescentada às linhas anteriores, como está representado na figura abaixo. Linha 1 Linha 2 Linha 3 Linha 4 Linha 5 \0 O código fornecido está quase completo. Só falta a condição de paragem a função le_texto deve parar quando o utilizador introduzir uma linha só com um ponto final. Lembre-se que as funções gets e fgets lêem a linha completa, incluindo o carácter de fim de linha ( \n ). Assim, a linha com o ponto final também tem o carácter de fim de linha. Complete o código fornecido. bool le_texto(char mensagem[], int max_length) { char *pt= mensagem; int cnt= 0, len; mensagem[0]= '\0'; while (cnt < max_length) { // Lê uma linha, com comprimento máximo igual ao que está // disponível no buffer fgets(pt, max_length-cnt, stdin); len= strlen(pt); // Calcula número de caracteres lidos EXERCÍCIO 2: escreva o código para detectar uma linha com um ponto final, e sair da função if ((cnt+len) >= max_length-1) // Esgotou o buffer return TRUE; // Senão continua para ler próxima linha // Coloca pt no início da próxima linha cnt+= len; // Conta os caracteres lidos pt += len; // Coloca pt no fim da string '\0' return (mensagem[0]!= '\0'); /* TRUE se string não vazia*/ Compile o código desenvolvido, e corra-o verificando se ele consegue detectar correctamente a linha com o ponto final Substituir o texto (substitui_texto) A função substitui_texto pode ser descrita como um ciclo de leitura de caracteres. O carácter pode ser um separador e é copiado para a text_changed. Se não for um separador é vista a palavra toda. Se for uma palavra a substituir, é colocada a nova palavra correspondente em text_changed. Se não, é copiada para text_changed. 6

7 Mais uma vez vamos usar várias funções. A primeira função auxiliar a realizar é a função is_separador para testar se um carácter é um separador. bool is_separador(char c) { /* ver o que isspace faz com 'man isspace' */ return (isspace(c) (c == '.') (c == ',') (c == ';') (c == ':') (c == '!') (c == '?')); Outra função necessária é a função substitui_palavra que recebe uma palavra no parâmetro text, e caso a palavra esteja num dos elementos do vector word, retorna a palavra correspondente no vector change. Isto é, retorna o apontador para char que identifica o primeiro carácter da palavra a substituir. Caso a palavra não esteja, então retorna a palavra inicial. Isto é, retorna o apontador para char do primeiro carácter da palavra em text. Para resolver este exercício é importante relembrar que um array de caracteres é compatível com um apontador para char (isto é, char *pt= text; é uma declaração válida e identifica a posição do primeiro carácter). Logo, na prática, a instrução return retorna um array de caracteres. char *substitui_palavra(int n_word, char word[][max_word_length], char change[][max_word_length], char text[]) { EXERCÍCIO 3: escreva o código desta função Por último, é necessária a função copia_palavra para copiar strings. Pretende-se que a função copie carácter a carácter do array orig para o array dest, até ao máximo de len caracteres. A função pára de copiar quando encontra um carácter '\0' em orig, ou quando atingir len caracteres. A função deve sempre acrescentar um '\0' no fim da string dest. void copia_palavra(char *dest, char *orig, int len) { EXERCÍCIO 4: escreva o código desta função A função substitui_texto recebe como parâmetros os vectores com as listas de palavras (word e change, que têm n_word elementos cada um), o texto a substituir (text), a dimensão do vector onde se vai escrever (max_length), e modifica o vector text_changed, preenchendo-o com a mensagem modificada. O código fornecido abaixo usa dois apontadores dest e pt, para controlar respectivamente a escrita em text_changed e a leitura de text. Usa ainda o vector auxiliar para guardar temporariamente a palavra do texto acabada de ler (que vai usar para chamar a função substitui_palavra), e res para apontar para a palavra que a vai substituir. A variável inteira out_leng mantém um contador de caracteres escritos na string text_changed. Pode ir até ao máximo de max_length. 7

8 O código base é um ciclo de leitura de caracteres. Se o carácter é um separador copia-o sem o modificar. Se não for um separador lê a palavra com a função sscanf, para a variável auxiliar, procura a palavra substituta (que pode ser a mesma), e escrevea em text_changed a seguir ao texto já escrito. Repare que a função sscanf é semelhante à função scanf, excepto que lê a partir da string que é fornecida como primeiro parâmetro. Repare que os apontadores dest e pt são actualizados no final de cada chamada à função copia_palavra. A função substitui_texto está completamente implementada, bastando copiar o seu conteúdo. Mas não se esqueça de analisar cuidadosamente como funciona, para conseguir perceber como usa as duas funções anteriores, e para conseguir realizar o exercício final. void substitui_texto(int n_word, char word[][max_word_length], char change[][max_word_length], char text[], char text_changed[], int max_length) { char auxiliar[max_word_length]; // Para ler palavras char *dest, *pt, *res; int out_leng= 0, len; dest= text_changed; /* Apontador para texto substituído */ pt= text; /* Apontador para texto original */ while (*pt && (out_leng<max_length)) { /* Enquanto não aparece '\0' e há espaço em text_changed */ if (is_separador(*pt)) { /* Próximo carácter é um separador */ copia_palavra(dest, pt, 1 /* copia 1 carácter */); dest++; /* Avança dest um carácter */ pt++; /* Avança pt um carácter */ /* Nota: as três instruções anteriores podiam ser feitas com "*dest++= *pt++;" */ out_leng++; /* Conta mais um carácter */ else { /* Próximo carácter é o início de uma palavra */ sscanf(pt, "%s", auxiliar); /* Lê a palavra */ /* A função substitui palavra retorna a palavra que deve ser escrita no texto modificado */ res= substitui_palavra(n_word, word, change, auxiliar); copia_palavra(dest, res, max_length-out_leng); /* Neste caso é copiada a string res toda, ou caso acabe o espaço no array, são copiados max_length-out_leng caracteres. */ /* Actualização do apontador em text_changed */ len= strlen(res); // len tem comprimento de res out_leng += len; // Soma comprimento a out_leng dest += len; // Avança dest até ao fim da string /* Actualização do apontador em text */ len = strlen (auxliar); pt += len; Compile e teste o programa, antes de passar ao exercício final. 8

9 4 Exercício final: Versão optimizada Pretende-se neste exercício final, estender o programa desenvolvido anteriormente de duas formas: 1. Modificar o programa de maneira a poder tratar vários textos, depois de ler uma vez a lista de palavras a substituir. A versão desenvolvida na secção anterior lê apenas um texto, e pára de seguida. 2. Modificar o código da função copia_palavra de maneira a copiar as palavras, mas também a incrementar os apontadores automaticamente e incrementar o número de caracteres copiados numa variável inteira. Deste modo não será preciso fazer a actualização dos apontadores em substitui_texto. Tal como está, a função substitui_texto tem de incrementar manualmente os apontadores pt e dest, e o número de caracteres na variável out_lang, depois de copiar as strings. Pretende-se modificar ambas as funções de maneira a que a nova função copia_palavra realize todas as operações (cópia, e incremento de pt, dest e out_lang). Para realizar este passo, comece por criar uma nova função nova_copia_palavra, e por definir a nova lista de parâmetros. De seguida, programe essa nova função. Por fim, modifique a função substitui_texto de maneira a usar a nova função, retirando todo o código que está em excesso nessa função. Repare que o que se pretende agora é que se modifique o valor dos apontadores dentro da função. Para realizar isto é necessário então utilizar apontadores para apontadores nos parâmetros da nova função nova_copia_palavra. Relembra-se que através de um apontador para um apontador é possível realizar todas as operações que se fazem com o apontador original. Por exemplo, para um apontador (char *pt), e para um apontador para apontador (char **ptr_pt) as duas colunas representadas abaixo fazem exactamente as mesmas acções: char *pt; char *outro; char *pt; char **ptr_pt= &pt; char *outro; /* Exemplo de operações */ *pt= 'a'; ++pt; outro= pt; /* outro aponta para a mesma zona de memória que pt */ /* Exemplo de operações */ *(*ptr_pt)= 'a'; ++(*ptr_pt); outro= *ptr_pt; /* outro aponta para a mesma zona de memória que pt */ Este exercício vai ser avaliado pelo docente durante a aula. Caso tenha conseguido terminar durante a aula chame o docente e mostre o trabalho a funcionar. Senão, complete o trabalho após o fim da aula, e traga-o completo para a próxima aula. 9

PROGRAMAÇÃO DE MICROPROCESSADORES 2009 / 2010

PROGRAMAÇÃ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º 6 Strings e Apontadores

Leia mais

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

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 Variáveis na linguagem C: tipo char O tipo char representa um caractere ASCII (ocupa só 1 byte) int main(int argc, char **

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 12 Cadeia de Caracteres (Strings) Edirlei Soares de Lima Caracteres Até o momento nós somente utilizamos variáveis que armazenam números (int, float ou

Leia mais

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos

Vetores. Vetores. Figura 1 Exemplo de vetor com 10 elementos Vetores Nos capítulos anteriores estudamos as opções disponíveis na linguagem C para representar: Números inteiros em diversos intervalos. Números fracionários com várias alternativas de precisão e magnitude.

Leia mais

INF 1005 Programação I

INF 1005 Programação I INF 1005 Programação I Aula 03 Introdução a Linguagem C Edirlei Soares de Lima Estrutura de um Programa C Inclusão de bibliotecas auxiliares: #include Definição de constantes:

Leia mais

Estrutura de Dados Básica

Estrutura de Dados Básica Estrutura de Dados Básica Professor: Osvaldo Kotaro Takai. Aula 4: Tipos de Dados O objetivo desta aula é apresentar os tipos de dados manipulados pela linguagem C, tais como vetores e matrizes, bem como

Leia mais

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012 Departamento de Engenharia Electrotécnica PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012 Mestrado Integrado em Engenharia Electrotécnica e de Computadores 1º ano 2º semestre Trabalho Final Reservas de viagens

Leia mais

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org

Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Estrutura da linguagem de programação C Prof. Tiago Eugenio de Melo tiago@comunidadesol.org Breve Histórico A linguagem de programação C foi criada na década de 70, por Dennis Ritchie, que a implementou,

Leia mais

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 02 Introdução a Linguagem C Edirlei Soares de Lima Lógica de Programação Lógica de Programação é a técnica de criar sequências lógicas de ações para

Leia mais

Resumo da Matéria de Linguagem de Programação. Linguagem C

Resumo da Matéria de Linguagem de Programação. Linguagem C Resumo da Matéria de Linguagem de Programação Linguagem C Vitor H. Migoto de Gouvêa 2011 Sumário Como instalar um programa para executar o C...3 Sintaxe inicial da Linguagem de Programação C...4 Variáveis

Leia mais

1 Resumo: Strings e vetores de caracteres. Departamento de Ciência da Computação IME/USP

1 Resumo: Strings e vetores de caracteres. Departamento de Ciência da Computação IME/USP Departamento de Ciência da Computação MAC2166 Introdução a Computação IME/USP Strings e vetores de caracteres 1 Resumo: O uso de strings facilita a manipulação de palavras e textos. Strings são basicamente

Leia mais

Capítulo 2: Introdução à Linguagem C

Capítulo 2: Introdução à Linguagem C Capítulo 2: Introdução à Linguagem C INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Programa Programa é um algoritmo escrito em uma linguagem de programação. No nosso

Leia mais

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO

INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO INTRODUÇÃO AO C++ SISTEMAS DE INFORMAÇÃO DR. EDNALDO B. PIZZOLATO Tópicos Estrutura Básica B de Programas C e C++ Tipos de Dados Variáveis Strings Entrada e Saída de Dados no C e C++ INTRODUÇÃO O C++ aceita

Leia mais

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu. Programação Estruturada Linguagem C Fundamentos da Linguagem Prof. Luis Nícolas de Amorim Trigo nicolas.trigo@ifsertao-pe.edu.br Sumário Estrutura Básica Bibliotecas Básicas Tipos de Dados Básicos Variáveis/Declaração

Leia mais

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Cadeias de caracteres (strings) Caracteres Definição e manipulação de strings Vetor de strings Parâmetros

Leia mais

Programas simples em C

Programas simples em C Programas simples em C Problema 1. Escreve um programa em C que dados dois inteiros indique se são iguais ou qual o maior. Utilizar a construção em 5 etapas... quais? 1. Perceber o problema 2. Ideia da

Leia mais

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos

Memória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br

Leia mais

INF 1007 Programação II

INF 1007 Programação II INF 1007 Programação II Aula 05 Cadeias de Caracteres Edirlei Soares de Lima Caracteres Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência

Leia mais

Introdução à Programação

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

Leia mais

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10

2. OPERADORES... 6 3. ALGORITMOS, FLUXOGRAMAS E PROGRAMAS... 8 4. FUNÇÕES... 10 1. TIPOS DE DADOS... 3 1.1 DEFINIÇÃO DE DADOS... 3 1.2 - DEFINIÇÃO DE VARIÁVEIS... 3 1.3 - VARIÁVEIS EM C... 3 1.3.1. NOME DAS VARIÁVEIS... 3 1.3.2 - TIPOS BÁSICOS... 3 1.3.3 DECLARAÇÃO DE VARIÁVEIS...

Leia mais

PROGRAMAÇÃO DE MICROPROCESSADORES 2011 / 2012

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 2º semestre Trabalho nº 0 Instalação dos programas

Leia mais

Estruturas de entrada e saída

Estruturas de entrada e saída capa Estruturas de entrada e saída - A linguagem C utiliza de algumas funções para tratamento de entrada e saída de dados. - A maioria dessas funções estão presentes na biblioteca . - As funções

Leia mais

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica

Introdução a Programação. Ponteiros e Strings, Alocação Dinâmica Introdução a Programação Ponteiros e Strings, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos a relação entre ponteiros e strings Ponteiros para strings X Vetores de Caracteres Vetores de ponteiros

Leia mais

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES

5 - Vetores e Matrizes Linguagem C CAPÍTULO 5 VETORES E MATRIZES CAPÍTULO 5 5 VETORES E MATRIZES 5.1 Vetores Um vetor armazena uma determinada quantidade de dados de mesmo tipo. Vamos supor o problema de encontrar a média de idade de 4 pessoas. O programa poderia ser:

Leia mais

Conceitos de Linguagens de Programação

Conceitos de Linguagens de Programação Conceitos de Linguagens de Programação Aula 07 Nomes, Vinculações, Escopos e Tipos de Dados Edirlei Soares de Lima Introdução Linguagens de programação imperativas são abstrações

Leia mais

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática Folha 1-1 Introdução à Linguagem de Programação JAVA 1 Usando o editor do ambiente de desenvolvimento JBUILDER pretende-se construir e executar o programa abaixo. class Primeiro { public static void main(string[]

Leia mais

Experimentos com a memória cache do CPU

Experimentos com a memória cache do CPU Experimentos com a memória cache do CPU Alberto Bueno Júnior & Andre Henrique Serafim Casimiro Setembro de 2010 1 Contents 1 Introdução 3 2 Desvendando o cache 3 2.1 Para que serve o cache?.....................

Leia mais

Programação 2. Trabalho Prático P4B. Efectue as tarefas de programação descritas abaixo, usando a linguagem C++ em ambiente Linux.

Programação 2. Trabalho Prático P4B. Efectue as tarefas de programação descritas abaixo, usando a linguagem C++ em ambiente Linux. Mestrado Integrado em Engenharia Electrotécnica e de Computadores 2006/2007 Programação 2 2º Semestre Trabalho Prático P4B Efectue as tarefas de programação descritas abaixo, usando a linguagem C++ em

Leia mais

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Linguagem C Tipos de Dados void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador Funções void void pode ser usado em lugar de um tipo, para indicar a ausência de valor

Leia mais

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores

Introdução à Programação. Armazenamento de Grande Quantidade de Informação Usando Vetores Introdução à Programação Armazenamento de Grande Quantidade de Informação Usando Vetores Armazenando Grande Quantidade de Informação Como armazenar tanta informação? Vetores! 2 Tópicos da Aula Hoje, aprenderemos

Leia mais

Comandos Sequenciais if else, e Switch

Comandos Sequenciais if else, e Switch Introdução à Programação Comandos Sequenciais if else, e Switch 1º ano - ESI e IGE (2011/2012) Engenheiro Anilton Silva Fernandes (afernandes@unipiaget.cv) O computador pensa? Muitas vezes utiliza-se a

Leia mais

Tabela ASCII de caracteres de controle

Tabela ASCII de caracteres de controle Caracteres Estruturas de Dados Aula 6: Cadeias de Caracteres 31/03/2010 Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis

Leia mais

ALGORITMOS E PROGRAMAÇÃO PARA COMPUTADORES II

ALGORITMOS E PROGRAMAÇÃO PARA COMPUTADORES II 1 Disciplina: ALGORITMOS E PROGRAMAÇÃO PARA COMPUTADORES II Faculdade de Análise de Sistemas Práticas de Laboratório 1- Cronograma Previsto (este cronograma pode sofrer alterações em decorrência de ajustes

Leia mais

Module Introduction. Programação. Cap. 4 Algoritmos e Programação Estruturada

Module Introduction. Programação. Cap. 4 Algoritmos e Programação Estruturada 5374 : Engenharia Informática 6638 : Tecnologias e Sistemas de Informação 9099 : Bioengenharia 10135 : Ciências Biomédicas Cap. 4 Algoritmos e Estruturada Module Introduction Algoritmos e Estruturada Objectivos:

Leia mais

14. Arquivos. W. Celes e J. L. Rangel. Estruturas de Dados PUC-Rio 13-1

14. Arquivos. W. Celes e J. L. Rangel. Estruturas de Dados PUC-Rio 13-1 14. Arquivos W. Celes e J. L. Rangel Neste capítulo, apresentaremos alguns conceitos básicos sobre arquivos, e alguns detalhes da forma de tratamento de arquivos em disco na linguagem C. A finalidade desta

Leia mais

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1

Curso de C. Procedimentos e Funções. 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1 Curso de C Procedimentos e Funções 6/4/200901/04/09 09:42 Copyright@Arnaldo V Moura, Daniel F Ferber 1 Funções Roteiro: Funções Declaração e chamada Funções importantes Exemplos de funções Variáveis Globais,

Leia mais

Programação e Sistemas de Informação

Programação e Sistemas de Informação Gestão e Programação de Sistemas Informáticos Programação e Sistemas de Informação Programação e Sistemas de Informação REVISÕES 1 Conteúdos Introdução Declaração de strings Atribuição de valores a strings

Leia mais

Curso de C para Engenharias

Curso de C para Engenharias Aula 4 Cristiano Dalbem Dennis Balreira Gabriel Moreira Miller Biazus Raphael Lupchinski Universidade Federal do Rio Grande do Sul Instituto de Informática Grupo PET Computação Sintaxe Funções Exemplos

Leia mais

17 - Funções e Procedimentos em C Programação Modular

17 - Funções e Procedimentos em C Programação Modular 17 - Funções e Procedimentos em C Programação Modular Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Ministrado por: Prof. André Amarante 17

Leia mais

Instruções condicionais. Instruções de repetição. Programa simples. Se fizeres barulho então apanhas um estalo!!!! Se condição então acção.

Instruções condicionais. Instruções de repetição. Programa simples. Se fizeres barulho então apanhas um estalo!!!! Se condição então acção. Sumário Instruções condicionais if Instruções de repetição do 04-1 Instruções condicionais Programa simples Sequência de instruções Como se faz a selecção de opções? Instruções condicionais Se fizeres

Leia mais

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. josineys@inf.ufpr.br

Fundamentos de Programação. Turma CI-240-EST. Josiney de Souza. josineys@inf.ufpr.br Fundamentos de Programação Turma CI-240-EST Josiney de Souza josineys@inf.ufpr.br Agenda do Dia Aula 2 (07/08/15) Introdução ao Python História Características Estrutura dos código-fonte Primeiros elementos

Leia mais

Algoritmos e Programação Estruturada

Algoritmos e Programação Estruturada Algoritmos e Programação Estruturada Virgínia M. Cardoso Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson.

Leia mais

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA

UNIVERSIDADE FEDERAL DO RIO GRANDE DO SUL INSTITUTO DE INFORMÁTICA INFORMÁTICA APLICADA Responda 1) Quem desenvolveu a linguagem C? Quando? 2) Existe alguma norma sobre a sintaxe da linguagem C? 3) Quais são os tipos básicos de dados disponíveis na linguagem C? 4) Quais são as principais

Leia mais

Javascript 101. Parte 2

Javascript 101. Parte 2 Javascript 101 Parte 2 Recapitulando O Javascript é uma linguagem de programação funcional Os nossos scripts são executados linha a linha à medida que são carregados. O código que está dentro de uma função

Leia mais

Computação e Programação Aula prática nº 5. Enunciados dos problemas

Computação e Programação Aula prática nº 5. Enunciados dos problemas Enunciados dos problemas 1 1. Processador de números 1.1 Objectivos do exercício análise sequencial de um problema baseada em objectos e desenvolvimento do respectivo algoritmo; codificação do algoritmo

Leia mais

Resumo da Introdução de Prática de Programação com C. A Linguagem C

Resumo da Introdução de Prática de Programação com C. A Linguagem C Resumo da Introdução de Prática de Programação com C A Linguagem C O C nasceu na década de 70. Seu inventor, Dennis Ritchie, implementou-o pela primeira vez usando um DEC PDP-11 rodando o sistema operacional

Leia mais

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período

PROGRAMAÇÃO ESTRUTURADA. CC 2º Período PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 06: Ponteiros Declarando e utilizando ponteiros Ponteiros e vetores Inicializando ponteiros Ponteiros para Ponteiros Cuidados a serem

Leia mais

Índice. Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial

Índice. Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial Índice i Índice Capítulo 2 Estrutura de Dados sequencial com armazenamento sequencial 1. A Estrutura Abstrata de Dados Lista... 1 1.1. Definição... 1 1.2. Implementação de Listas utilizando armazenamento

Leia mais

Estrutura de um programa em linguagem C

Estrutura de um programa em linguagem C Estrutura de um programa em linguagem C Estrutura de um programa em linguagem C Exemplo de um programa em linguagem C Directivas de Pré-Processamento #include Declarações Globais Declarações

Leia mais

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre Cap. 02 Fundamentos de Linguagens Sumário : Linguagem, alfabeto e gramática

Leia mais

Programação: Tipos, Variáveis e Expressões

Programação: Tipos, Variáveis e Expressões Programação de Computadores I Aula 05 Programação: Tipos, Variáveis e Expressões José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/56 Valores Valor é uma entidade

Leia mais

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br

LP II Estrutura de Dados. Introdução e Linguagem C. Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br LP II Estrutura de Dados Introdução e Linguagem C Prof. José Honorato F. Nunes honorato.nunes@ifbaiano.bonfim.edu.br Resumo da aula Considerações Gerais Introdução a Linguagem C Variáveis e C Tipos de

Leia mais

Conceitos básicos da linguagem C

Conceitos básicos da linguagem C Conceitos básicos da linguagem C 2 Em 1969 Ken Thompson cria o Unix. O C nasceu logo depois, na década de 70. Dennis Ritchie, implementou-o pela primeira vez usando o sistema operacional UNIX criado por

Leia mais

IFTO LÓGICA DE PROGRAMAÇÃO AULA 05

IFTO LÓGICA DE PROGRAMAÇÃO AULA 05 IFTO LÓGICA DE PROGRAMAÇÃO AULA 05 Prof. Manoel Campos da Silva Filho Tecnólogo em Processamento de Dados / Unitins Mestre em Engenharia Elétrica / UnB http://lab.ifto.edu.br/~mcampos http://manoelcampos.com

Leia mais

Curso de Programação Computadores

Curso de Programação Computadores 3 O Primeiro Programa em C Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 3 O Primeiro Programa em C 3.1 - Introdução Depois dos conceitos

Leia mais

Aula 06 - Funções. O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros

Aula 06 - Funções. O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros O que é uma Função - Comando return - Protótipos de Funções - Tipos de Funções - Escopo de Variáveis - Passagem de parâmetros Algoritmo e Programação Aula 06 - Funções Colegiado de Engenharia da Computação

Leia mais

Folha Prática 2. Lab. 2

Folha Prática 2. Lab. 2 Programação Folha Prática 2 Lab. 2 Departamento de Informática Universidade da Beira Interior Portugal 2010 Copyright 2010 All rights reserved. 1. Revisão dos conceitos fundamentais da programação de computadores

Leia mais

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 APROG Algoritmia e Programação Linguagem JAVA Básico Nelson Freire (ISEP DEI-APROG 2012/13) 1/31 Linguagem Java Estrutura de um Programa Geral Básica Estruturas de Dados Variáveis Constantes Tipos de Dados

Leia mais

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação

Faculdade de Ciências Universidade Agostinho Neto Departamento de Matemática e Engenharia Geográfica Ciências da Computação FaculdadedeCiências UniversidadeAgostinhoNeto DepartamentodeMatemáticaeEngenhariaGeográfica CiênciasdaComputação ProgramaçãoII SegundaParte Adaptado de um original dos docentes de ISCTE Objectivos Os alunos

Leia mais

Programando em C++ Histórico da Linguagem C

Programando em C++ Histórico da Linguagem C Programando em C++ Joaquim Quinteiro Uchôa joukim@comp.ufla.br DCC-UFLA, 2002 Programando em C++ p.1/38 Histórico da Linguagem C Linguagem C: 1972 - Laboratório Bells, por Dennis Ritchie, a partir da linguagem

Leia mais

14.1 Vetor - Problemas

14.1 Vetor - Problemas Problema 14: Um método de Criptografia consiste em substituir as letras de uma mensagem através do emparelhamento de alfabetos tal como dado abaixo. Construir um programa que codifica mensagens usando

Leia mais

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação Linguagem C: variáveis, operadores, entrada/saída Prof. Críston Algoritmos e Programação Linguagem C Linguagem de uso geral (qualquer tipo de aplicação) Uma das linguagens mais utilizadas Foi utilizada

Leia mais

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA

DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA DEPARTAMENTO DE ENGENHARIA INFORMÁTICA FACULDADE DE CIÊNCIAS E TECNOLOGIA DA UNIVERSIDADE DE COIMBRA Sistemas Operativos 2003/2004 Trabalho Prático #2 -- Programação em C com ponteiros -- Objectivos Familiarização

Leia mais

Curso de Linguagem C

Curso de Linguagem C Curso de Linguagem C 1 Aula 1 - INTRODUÇÃO...4 AULA 2 - Primeiros Passos...5 O C é "Case Sensitive"...5 Dois Primeiros Programas...6 Introdução às Funções...7 Introdução Básica às Entradas e Saídas...

Leia mais

Modelagem e Implementação (Incremental de um Software para Controle) de Aquário de Peixes

Modelagem e Implementação (Incremental de um Software para Controle) de Aquário de Peixes Modelagem e Implementação de Aquário de Peixes- por Jorge Fernandes - Página 1 Modelagem e Implementação (Incremental de um Software para Controle) de Aquário de Peixes Jorge Fernandes Natal, Agosto de

Leia mais

Exemplos. char c; int i=67;... c= A ; c=c+1; if (c== B )... c=i; i=c; i++; if (i>= C )...

Exemplos. char c; int i=67;... c= A ; c=c+1; if (c== B )... c=i; i=c; i++; if (i>= C )... Caracteres Conceitos Tipo de dados simples (char), cujo valor é a codificação numérica de um caracter; Caracteres literais são representados por aspas simples, como em A e a ; Variáveis do tipo char podem

Leia mais

Exercício 1. Tabela 1: Cadastro de usuários, senhas e privilégios (exemplo). Login Senha Privilégio Armamento

Exercício 1. Tabela 1: Cadastro de usuários, senhas e privilégios (exemplo). Login Senha Privilégio Armamento 1/5 Exercício 1 Um sistema de segurança militar, usado num submarino nuclear, controla o acesso de usuários a três subsistemas (armamento, navegação e comunicações) através da digitação do login do usuário

Leia mais

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre

Programação. MEAer. Bertinho Andrade da Costa. Instituto Superior Técnico. Introdução ao Pré-Processador. 2011/2012 1º Semestre Programação MEAer Bertinho Andrade da Costa 2011/2012 1º Semestre Instituto Superior Técnico Introdução ao Pré-Processador Programação 2011/2012 DEEC-IST Introdução ao Pré-Processador 1 Sumário Introdução

Leia mais

José Romildo Malaquias 2011-1

José Romildo Malaquias 2011-1 Programação de Computadores I Aula 08 Programação: Estruturas de Repetição José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/58 Motivação Como imprimir os três

Leia mais

Análise de complexidade

Análise de complexidade Introdução Algoritmo: sequência de instruções necessárias para a resolução de um problema bem formulado (passíveis de implementação em computador) Estratégia: especificar (definir propriedades) arquitectura

Leia mais

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java Linguagem Java Objetivos Compreender como desenvolver algoritmos básicos em JAVA Aprender como escrever programas na Linguagem JAVA baseando-se na Linguagem Portugol aprender as sintaxes equivalentes entre

Leia mais

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Linguagem e Técnicas de Programação I Operadores, expressões e funções. Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Linguagem e Técnicas de Programação I Operadores, expressões e funções Prof. MSc. Hugo Souza Material desenvolvido por: Profa. Ameliara Freire Operadores básicos Toda linguagem de programação, existem

Leia mais

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C 1 2 Repetição 1 Enquanto 'C' é verdadeira Fazer? 3 Repetição 1 Enquanto 'C' é verdadeira Fazer? while (C)?; 4 Enunciado: Construa um algoritmo para mostrar os 100

Leia mais

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto

Programação 2ºSemestre MEEC - 2010/2011. Programação 2º Semestre 2010/2011 Enunciado do projecto Mestrado Integrado em Engenharia Electrotécnica e de Computadores Programação 2º Semestre 2010/2011 Enunciado do projecto O projecto a desenvolver pelos alunos consistirá numa sistema de monitorização,

Leia mais

Iniciação rápida à Linguagem C

Iniciação rápida à Linguagem C Iniciação rápida à Linguagem C jrg, SO, ISCTE 2009-10-1ºS vs 001 1. O "Hello World" O "Hello World" é o seguinte programa ( 1 ) printf ("Hello World!\n"); A primeira linha do programa é um "include". Esta

Leia mais

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++

INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ UNIVERSIDADE FEDERAL RURAL DO SEMI-ÁRIDO CURSO: Bacharelado em Ciências e Tecnologia INFORMÁTICA APLICADA AULA 02 LINGUAGEM DE PROGRAMAÇÃO C++ Profª ª Danielle Casillo COMPILADORES Toda linguagem de programação

Leia mais

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I 01/2013 Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo Problema 1 Suponha que soma (+) e subtração (-) são as únicas operações disponíveis em

Leia mais

Programação 1. Rafael Vargas Mesquita. http://www.ci.ifes.edu.br ftp://ftp.ci.ifes.edu.br/informatica/rafael/

Programação 1. Rafael Vargas Mesquita. http://www.ci.ifes.edu.br ftp://ftp.ci.ifes.edu.br/informatica/rafael/ Programação 1 Rafael Vargas Mesquita http://www.ci.ifes.edu.br ftp://ftp.ci.ifes.edu.br/informatica/rafael/ Definição de Matriz Definição: é um conjunto de espaços de memória referenciados por um mesmo

Leia mais

Programação Recursiva versão 1.02

Programação Recursiva versão 1.02 Programação Recursiva versão 1.0 4 de Maio de 009 Este guião deve ser entregue, no mooshak e no moodle, até às 3h55 de 4 de Maio. AVISO: O mooshak é um sistema de avaliação e não deve ser utilizado como

Leia mais

20 Caracteres - Tipo char

20 Caracteres - Tipo char 0 Caracteres - Tipo char Ronaldo F. Hashimoto e Carlos H. Morimoto Até agora vimos como o computador pode ser utilizado para processar informação que pode ser quantificada de forma numérica. No entanto,

Leia mais

1 Detecção e correcção de erros 1 1.1 Erros sintáticos... 1 1.2 Erros de execução... 2 1.3 Erros semânticos... 5 1.4 Erros semânticos...

1 Detecção e correcção de erros 1 1.1 Erros sintáticos... 1 1.2 Erros de execução... 2 1.3 Erros semânticos... 5 1.4 Erros semânticos... Nesta aula... Conteúdo 1 Detecção e correcção de erros 1 1.1 Erros sintáticos............................. 1 1.2 Erros de execução............................ 2 1.3 Erros semânticos............................

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação Prof. Miguel Elias Mitre Campista http://www.gta.ufrj.br/~miguel Parte IV Introdução à Programação em C++ (Continuação) Relembrando da Última Aula... Funções Classes de armazenamento

Leia mais

e à Linguagem de Programação Python

e à Linguagem de Programação Python Introdução a Algoritmos, Computação Algébrica e à Linguagem de Programação Python Curso de Números Inteiros e Criptografia Prof. Luis Menasché Schechter Departamento de Ciência da Computação UFRJ Agosto

Leia mais

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C Edwar Saliba Júnior Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C Belo Horizonte 2010 Sumário 1 Nota:... 2 2 Comandos e Palavras Reservadas:... 3 3 Dicas... 4 3.1 Strings

Leia mais

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2005/2006. 0.5 Valores

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2005/2006. 0.5 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) 2005/2006 TRABALHO PRÁTICO Nº

Leia mais

Algoritmos e Estruturas de Dados I 01/2013. Arquivos. Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I 01/2013. Arquivos. Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I 01/2013 Arquivos Pedro O.S. Vaz de Melo Problema 1 Considere que um arquivo de dados contém os valores das dimensões (tam. max.: 100) e dos elementos de duas matrizes

Leia mais

Manual de Access 2007

Manual de Access 2007 Manual de Access 2007 Índice Introdução... 4 Melhor que um conjunto de listas... 5 Amizades com relações... 6 A Estrutura de uma Base de Dados... 8 Ambiente do Microsoft Access 2007... 9 Separadores do

Leia mais

Manipulação de Arquivos

Manipulação de Arquivos Manipulação de Arquivos Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Tipo

Leia mais

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s

Operaçõe õ s c om o Strings Intr oduç ão a o Ponte iros o e Funçõe õ s Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Operações com Strings Introdução a Ponteiros e Funções Profa Rosana Braga 1 Strings Strings são seqüências de caracteres

Leia mais

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++

Edwar Saliba Júnior. Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++ Edwar Saliba Júnior Dicas, Comandos e Exemplos Comparativos entre Linguagem Algorítmica e Linguagem C / C++ Belo Horizonte 2009 Sumário 1 Nota:... 2 2 Comandos e Palavras Reservadas:... 3 3 Dicas... 4

Leia mais

Algoritmos e Estruturas de Dados I. Arquivos. Pedro O.S. Vaz de Melo

Algoritmos e Estruturas de Dados I. Arquivos. Pedro O.S. Vaz de Melo Algoritmos e Estruturas de Dados I Arquivos Pedro O.S. Vaz de Melo Problema 1 Considere que um arquivo de dados contém os valores das dimensões (tam. max.: 100) e dos elementos de duas matrizes de números

Leia mais

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação

3. INTRODUÇÃO À LINGUAGEM C 3.1. CONCEITOS BÁSICOS. Lógica de Programação Lógica de Programação 3. INTRODUÇÃO À LINGUAGEM C Caro Aluno Vamos iniciar o terceiro capítulo da nossa disciplina. Agora vamos começar a aplicar os conceitos vistos nos capítulos anteriores em uma linguagem

Leia mais

AMBIENTE DE PROGRAMAÇÃO PYTHON

AMBIENTE DE PROGRAMAÇÃO PYTHON Computadores e Programação Engª Biomédica Departamento de Física Faculdade de Ciências e Tecnologia da Universidade de Coimbra Ano Lectivo 2003/2004 FICHA 1 AMBIENTE DE PROGRAMAÇÃO PYTHON 1.1. Objectivos

Leia mais

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.

Algoritmos e Programação. Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com. Algoritmos e Programação Curso de Engenharia de Produção Prof. Ms. Rogério Cardoso rogerio.cardoso@aedu.com professor@rogeriocardoso.com.br 2012 Conteúdo e Objetivos da Aula Introdução a Linguagem C Revisão

Leia mais

Tarefa Orientada 2 Visual Studio 2005 e Visual C#

Tarefa Orientada 2 Visual Studio 2005 e Visual C# Tarefa Orientada 2 Visual Studio 2005 e Visual C# Nesta tarefa é proposta a realização de um conjunto de actividades que têm como finalidade a familiarização com o programa e adquirir alguma destreza na

Leia mais

MC-102 Aula 17 Strings e Matrizes

MC-102 Aula 17 Strings e Matrizes MC-102 Aula 17 Strings e Matrizes Instituto de Computação Unicamp 5 de Maio de 2015 Roteiro 1 Strings Strings: Exemplos 2 Matrizes Exemplos com Matrizes 3 Exercícios (Instituto de Computação Unicamp) MC-102

Leia mais

Convertendo Algoritmos para a Linguagem C

Convertendo Algoritmos para a Linguagem C onvertendo Algoritmos para a Linguagem Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan O objetivo deste texto é mostrar alguns programas em, dando uma breve descrição de seu funcionamento

Leia mais