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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR

GUIA DE FUNCIONAMENTO DA UNIDADE CURRICULAR Curso Engenharia Informática Ano letivo 2012-2013 Unidade Curricular Arquitectura de Computadores ECTS 6 Regime Obrigatório Ano 2º Semestre 2ºsem Horas de trabalho globais Docente (s) Luis Figueiredo Total

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

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

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

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo. Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto

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

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

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

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores

Trabalhos Práticos. Programação II Curso: Engª Electrotécnica - Electrónica e Computadores Trabalhos Práticos Programação II Curso: Engª Electrotécnica - Electrónica e Computadores 1. Objectivos 2. Calendarização 3. Normas 3.1 Relatório 3.2 Avaliação 4. Propostas Na disciplina de Programação

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

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

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

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

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

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

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

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

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

Orientação a Objetos

Orientação a Objetos 1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou

Leia mais

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco

Manual de Utilizador. Disciplina de Projecto de Sistemas Industriais. Escola Superior de Tecnologia. Instituto Politécnico de Castelo Branco Escola Superior de Tecnologia Instituto Politécnico de Castelo Branco Departamento de Informática Curso de Engenharia Informática Disciplina de Projecto de Sistemas Industriais Ano Lectivo de 2005/2006

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

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

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

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

Curso de Licenciatura em Engenharia Informática Cadeira de Algoritmia

Curso de Licenciatura em Engenharia Informática Cadeira de Algoritmia Curso de Licenciatura em Engenharia Informática Cadeira de Algoritmia Projecto de avaliação 2006/2007. Este projecto visa a criação de um back-end para geração de facturas para um sistema de facturação

Leia mais

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1

Linguagem C: Estruturas de Controle. Prof. Leonardo Barreto Campos 1 Linguagem C: Estruturas de Controle Prof. Leonardo Barreto Campos 1 Sumário Estrutura de Controle e de Fluxo Comandos de Seleção: O comando if; Ifs Aninhados; A escada if-else-if; A expressão condicional;

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

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

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m - 2 0 1 3 P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1:

P r o g r a m a ç ã o d e C o m p u t a d o r e s 1 o S e m - 2 0 1 3 P r o f. A n d r é A m a r a n t e L u i z L A B 5 tag %2d while printf PE1: Inteligência É a faculdade de criar objetos artificiais, especialmente ferramentas para fazer ferramentas. Henri Bergson. WHILE Além dos comandos if-else e switch, o controle de fluxo de um programa pode

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

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

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

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

JSP - ORIENTADO A OBJETOS

JSP - ORIENTADO A OBJETOS JSP Orientação a Objetos... 2 CLASSE:... 2 MÉTODOS:... 2 Método de Retorno... 2 Método de Execução... 2 Tipos de Dados... 3 Boolean... 3 Float... 3 Integer... 4 String... 4 Array... 4 Primeira:... 4 Segunda:...

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

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

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

MC102 Algoritmos e programação de computadores Aula 3: Variáveis MC102 Algoritmos e programação de computadores Aula 3: Variáveis Variáveis Variáveis são locais onde armazenamos valores na memória. Toda variável é caracterizada por um nome, que a identifica em um programa,

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

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

Persistência de Dados

Persistência de Dados Persistência de s Universidade do Estado de Santa Catarina - Udesc Centro de Ciências Tecnológicas - CCT Departamento de Ciência da Computação Tecnologia de Sistemas de Informação Estrutura de s II - DAD

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

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

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

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação?

Grupo I [4v] b. [0,6v] De que forma é que o escalonador do Linux tenta minimizar o impacto desta limitação? Número: Nome: LEIC/LERC 2011/12-2º Exame de Sistemas Operativos 3/Fevereiro/2012 Responda no enunciado, apenas no espaço fornecido. Identifique todas as folhas. Duração: 2h30m Grupo I [4v] 1. [0,6v] A

Leia mais

PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008

PROGRAMAÇÃ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 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

Algoritmos de Busca em Tabelas

Algoritmos de Busca em Tabelas Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas estão entre os mais usados. Considere por exemplo um sistema de banco de dados. As operações de busca e recuperação dos dados

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

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

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

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

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

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

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

428 Capítulo 7 Arrays. do { ExibeArrayInts(ar, n); /* Exibe a configuração */ /* corrente do array */ } while (ProximaPermutacao(ar, n));

428 Capítulo 7 Arrays. do { ExibeArrayInts(ar, n); /* Exibe a configuração */ /* corrente do array */ } while (ProximaPermutacao(ar, n)); 428 Capítulo 7 Arrays do { ExibeArrayInts(ar, n); / Exibe a configuração / / corrente do array / while (ProximaPermutacao(ar, n)); Análise: Inicialmente, a função GeraPermutacoes() chama a função BubbleSort(),

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

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

13 Números Reais - Tipo float

13 Números Reais - Tipo float 13 Números Reais - Tipo float Ronaldo F. Hashimoto e Carlos H. Morimoto Até omomentonoslimitamosaouso do tipo inteiro para variáveis e expressões aritméticas. Vamos introduzir agora o tipo real. Ao final

Leia mais

Manipulação de Arquivos

Manipulação de Arquivos 1 Manipulação de Arquivos Para realizar E/S em arquivo, você precisa incluir o arquivo-cabeçalho fstream.h nos programas. Esse arquivo define muitas classes e valores importantes. Abrindo e fechando um

Leia mais

Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto

Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto Licenciatura em Engenharia Informática Departamento de Engenharia Informática Instituto Superior de Engenharia do Porto Sandra Manuela Lemos Machado Versão 2 Março 2002 Criticas e sugestões: smachado@dei.isep.ipp.pt

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

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

9 Comandos condicionais

9 Comandos condicionais 9 Comandos condicionais Um comando condicional é uma instrução empregada quando se deseja criar um desvio, isto é, a opção de executar-se ou não um determinado trecho de código, segundo uma condição. Em

Leia mais

Manual do Utilizador

Manual do Utilizador Faculdade de Ciências e Tecnologia da Universidade de Coimbra Departamento de Engenharia Electrotécnica e Computadores Software de Localização GSM para o modem Siemens MC35i Manual do Utilizador Índice

Leia mais

Strings. Todas as funções apresentadas neste documento estão no arquivo de cabeçalho string.h.

Strings. Todas as funções apresentadas neste documento estão no arquivo de cabeçalho string.h. Strings Todas as funções apresentadas neste documento estão no arquivo de cabeçalho string.h. 1 Determinando o tamanho de uma string Para determinar o tamanho de uma string use a função strlen( ). Sua

Leia mais

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza

Introdução. Manipulação de arquivos em C. Estrutura de Dados II Prof Jairo Francisco de Souza Introdução Manipulação de arquivos em C Estrutura de Dados II Prof Jairo Francisco de Souza Manipulação de Arquivo em C Existem dois tipos possíveis de acesso a arquivos na linguagem C : sequencial (lendo

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

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO

ECD1200 Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Equipamento de Consulta de Dados KIT DE DESENVOLVIMENTO Versão do documento: 1.1 1. Introdução...3 2. Documentação...3 2.1. DOCUMENTAÇÃO DE REFERÊNCIA... 3 2.2. DESCRIÇÃO FUNCIONAL... 4 2.2.1. INTERFACE...

Leia mais

Aula 1 Tipo Abstrato de Dados

Aula 1 Tipo Abstrato de Dados Aula 1 Tipo Abstrato de Dados Luiz Chaimowicz e Raquel O. Prates Livro Projeto de Algoritmos Capítulo 1 2009-1 O que é um algoritmo? O que é um programa? Algoritmos Sequência de ações executáveis para

Leia mais

INTRODUÇÃO À LINGUAGEM C++

INTRODUÇÃO À LINGUAGEM C++ INTRODUÇÃO À LINGUAGEM C++ 1 - VARIÁVEIS Variáveis espaço de memória reservado para armazenar tipos de dados, com um nome para referenciar seu conteúdo. Observações importantes Todas as variáveis devem

Leia mais

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior

Armazenamento de Dados. Prof. Antonio Almeida de Barros Junior Armazenamento de Dados Prof. Antonio Almeida de Barros Junior 1 Armazenamento de Dados Todos os dados que utilizamos até o momento, ficavam armazenados apenas na memória. Ao final da execução dos programas,

Leia mais

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução

Leia mais

LINGUAGEM C UMA INTRODUÇÃO

LINGUAGEM C UMA INTRODUÇÃO LINGUAGEM C UMA INTRODUÇÃO AULA 1 Conceitos muito básicos 1 Introdução 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

Engenharia de Software. Enunciado da Primeira Parte do Projecto

Engenharia de Software. Enunciado da Primeira Parte do Projecto LEIC-A, LEIC-T, LETI, MEIC-T, MEIC-A Engenharia de Software 2 o Semestre 2014/2015 Enunciado da Primeira Parte do Projecto 1. Primeira Parte do Projecto ES Este enunciado descreve o trabalho a realizar

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

Componentes da linguagem C++

Componentes da linguagem C++ Componentes da linguagem C++ C++ é uma linguagem de programação orientada a objetos (OO) que oferece suporte às características OO, além de permitir você realizar outras tarefas, similarmente a outras

Leia mais

Programação Básica em Arduino Aula 2

Programação Básica em Arduino Aula 2 Programação Básica em Arduino Aula 2 Execução: Laboratório de Automação e Robótica Móvel Variáveis são lugares (posições) na memória principal que servem para armazenar dados. As variáveis são acessadas

Leia mais