PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008

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

Download "PROGRAMAÇÃO DE MICROPROCESSADORES 2007 / 2008"

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 Estruturação de código e outros aspectos avançados Luis Bernardo Paulo Pinto

2 1 Introdução Este trabalho aborda um conjunto de aspectos focados nos capítulos 10, 11, 13 e 14 do livro Linguagem C de Luís Damas, recomendado para a disciplina de Programação de Microprocessadores. O programa vai refazer o trabalho da última aula, utilizando arrays de estruturas, tipo enumerados, e divisão do código por vários ficheiros. Esta aula visa consolidar estas matérias através de um conjunto de exercícios, mas principalmente por exemplificar o modo como se constrói um programa que usa vários ficheiros. Durante a aula vai ser desenvolvida uma aplicação em várias fases que mantém os dados dos alunos num array, e que permite exportar esses dados ou importar esses dados de um ficheiro binário. Neste trabalho introduz-se o conceito de modularidade. São fornecidos quatro ficheiros: aluno.c, aluno.h, lista_alunos.c, e Makefile. Pretendese que o aluno complete o código no ficheiro lista_alunos.c, utilizando os tipos de dados e as funções que os manipulam, através dos protótipos definidos em aluno.h. 2 Os ficheiros aluno.h e aluno.c Neste trabalho vai-se usar uma abordagem diferente da usada nos três trabalhos anteriores. Em vez de se começar a programar a partir da função main, vai-se iniciar a programação pelo desenvolvimento de um tipo de dados para guardar os dados dos alunos, e depois, por programar um conjunto de funções para realizar as várias operações sobre este tipo de dados. Desta forma, vai programar-se um ficheiro aluno.h com as definições de tipos e com o protótipo das funções desenvolvidas, e um ficheiro aluno.c com o código dessas funções. Constrói-se assim um conjunto de funções e dados que tratam os alunos. Para desenvolver a aplicação na função main apenas é usado o conteúdo do ficheiro aluno.h. Podem declarar-se variáveis dos tipos lá definidos e invocar as funções cujos protótipos estão lá definidos. O conteúdo do ficheiro aluno.c apenas vai ser necessário quando se quiser montar o executável final, juntando as várias funções do programa. Repare que é isso o que acontece quando se usa a biblioteca <stdio.h>: invoca-se a função scanf sem saber como é executada. Quando os programas começam a ter uma dimensão grande, este expediente de partir o problema é muito útil. Os dois ficheiros, aluno.h e aluno.c, são fornecidos completos com o enunciado. Este trabalho vai voltar a realizar uma lista de alunos, como no trabalho anterior, com o mesmo formato de dados e de ficheiros binários. A diferença é que agora os dados dos alunos vão ser guardados todos em memória. As operações suportadas são idênticas às do trabalho anterior, excepto as operações de leitura e escrita para um ficheiro. As operações de manipulação da lista de alunos são executadas na memória do computador, e só são passadas para o ficheiro quando o utilizador usa a opção correspondente. Desta forma, o programa é mais rápido a realizar as operações. 2.1 ESTRUTURAS DE DADOS Como se disse anteriormente, os dados dos alunos são guardados na mesma estrutura que no trabalho anterior. No entanto, há algumas diferenças na forma como se declaram os tipos auxiliares. Repare que o tipo bool é agora declarado como um tipo 2

3 enumerado com dois valores possíveis (FALSE e TRUE), que também define os valores para cada constante. Neste trabalho também vai usar-se a estrutura struct Aluno para guardar os dados de cada aluno, e para ler e escrever no ficheiro. Mas graças a um typedef o tipo Aluno é definido como sendo igual ao tipo struct Aluno. Desta forma, deixa de ser necessário colocar o struct nas variáveis que guardam dados de alunos. typedef enum { FALSE= 0, TRUE= 1 bool; #define MAX_STUDENTNAME_LENGTH 160 struct Aluno { char nome[max_studentname_length]; int numero; int turno; ; typedef struct Aluno Aluno; 2.2 FUNÇÕES PARA MANIPULAR DADOS DO TIPO ALUNO Nesta secção são apresentados os protótipos das funções desenvolvidas para aceder a variáveis do tipo Aluno. Juntamente com o enunciado é fornecido o ficheiro aluno.c com o código das funções. As funções não são descritas aqui porque: 1) Não é necessário para realizar o exercício, pois basta saber como se chamam as funções e o que fazem; 2) A maior parte do código já foi utilizada no trabalho anterior. A função inicia_dados_aluno permite iniciar o conteúdo de uma variável do tipo Aluno apontada por aluno_ptr com o campo nome vazio (todos os caracteres com o valor \0 ), e os campos numero e turno com o valor 0 (zero). void inicia_dados_aluno(aluno *aluno_ptr); A função aluno_esta_definido verifica se o comprimento do nome da variável apontada por aluno_ptr é maior que zero. Retorna TRUE se é maior que zero, ou FALSE em caso contrário. bool aluno_esta_definido(aluno *aluno_ptr); A função string_dados_aluno retorna uma string com os dados internos da variável apontada por aluno_ptr. Neste caso é mostrado um detalhe na realização da função no ficheiro aluno.c para destacar a utilização da variável static buffer. As variáveis normais de uma função desaparecem quando termina a função. Neste caso a palavra-chave static faz com que a variável buffer seja criada no início do programa, mantendo-se activa e sempre com o mesmo valor entre invocações da função string_dados_aluno. /* No ficheiro aluno.h */ char *string_dados_aluno(aluno *aluno_ptr); /* No ficheiro aluno.c */ char *string_dados_aluno(aluno *aluno_ptr){ static char buffer[max_studentname_length+21]; As funções ler_nome e ler_numero são idênticas às funções com o mesmo nome usadas no trabalho anterior, e permitem respectivamente ler uma string com um 3

4 tamanho máximo max_len, ou um número para a variável apontada por number_ptr. Em ambos os casos retorna TRUE em caso de sucesso, ou FALSE se falhou a leitura. bool ler_nome(char *string, int max_len); bool ler_numero(int *number_ptr); A função ler_dados_aluno lê a partir do teclado os dados de um aluno para uma variável apontada por aluno_ptr. Retorna TRUE caso consiga ler os dados com sucesso, ou FALSE caso contrário. bool ler_dados_aluno(aluno *aluno_ptr); A função read_file_dados_aluno é usada para ler os dados de um aluno para a variável apontada por aluno_ptr a partir do ficheiro binário apontado por fp. A função write_file_dados_aluno é usada para escrever os dados do aluno apontada por aluno_ptr para o ficheiro binário apontado por fp. Em ambos os casos, as funções retornam TRUE em caso de sucesso, ou FALSE se falhou a operação. bool read_file_dados_aluno(file *fp, Aluno *aluno_ptr); bool write_file_dados_aluno(file *fp, Aluno *aluno_ptr); A função copia_dados_aluno copia todos os campos da variável apontada por de_ptr para a variável para_ptr. void copia_dados_aluno(aluno *para_ptr, Aluno *de_ptr); Um dos problemas que pode ocorrer quando se separa o código por vários ficheiros é a possibilidade de ter erros por o ficheiro aluno.h ser incluído mais de uma vez. Isto pode acontecer em programas muito grandes que incluem ficheiros que por sua vez incluem outros ficheiros, e pode-se chegar a uma situação onde o controlo que quem inclui quem é difícil de fazer e o mesmo ficheiro é incluído mais do que uma vez. As linhas assinaladas abaixo são usadas para evitar este problema. Tem um comportamento parecido como um IF para a parte do compilador que faz o processamento dos #define. As instruções entre o #ifndef e o #endif só são executadas se o símbolo (neste caso, _ALUNO_H_) não estiver definido (#ifndef == Se não está definido). Neste caso, a primeira instrução é definir o símbolo para nunca mais (noutros ficheiros) a parte restante do código ser executada. A parte restante é incluir os ficheiros. Assim, eles nunca serão incluídos mais de que uma vez. Já agora, e para situações mais profissionais, dentro deste IF até se pode colocar código normal de C que só é compilado se o símbolo estiver definido. Assim, um programa pode ter uma parte de código que pode ser compilada ou não. #ifndef _ALUNO_H_ #define _ALUNO_H_ // definições #endif 3 O ficheiro lista_alunos.c O ficheiro lista_alunos.c contém a parte do trabalho relacionada com o menu e com as várias funcionalidades disponíveis a partir do menu. Pretende-se ter as opções representadas na figura seguinte. No resto deste enunciado vão ser definidas as funções 4

5 que realizam estas operações e o menu principal. O trabalho dos alunos é simplesmente completar uma delas e fazer o menu principal. 0: Sair 1: Ler alunos de ficheiro 2: Acrescentar aluno 3: Apagar aluno 4: Listar alunos 5: Listar alunos por turno 6: Salvar alunos para ficheiro A leitura dos dados de alunos de um ficheiro é executada pela função ler_alunos_ficheiro, Vai poder ser chamada com o nome de um ficheiro, ou sem nome, pretendendo-se, nesse caso, que a função peça o nome ao utilizador. A função recebe como parâmetros: dados, um array de dados do tipo Aluno; n_alunos, um apontador para um inteiro com o número de alunos preenchidos no array; e nome, o nome do ficheiro ou o valor da constante NULL se o nome não estiver definido. A função modifica o array e o número de elementos, não deixando preencher mais do que MAX_N_ALUNOS elementos. Repare que para obter o endereço do aluno na posição *n_alunos (próxima posição livre) do array tanto que pode usar &dados[*n_alunos] como (dados+*n_aluno) optou-se pela primeira forma para aumentar a legibilidade do código. São usadas as funções ler_nome e read_file_dados_aluno definidas em aluno.h., cujo código está em aluno.c. /* Realiza a opção 1: Ler alunos de ficheiro */ void ler_alunos_ficheiro(char *nome, Aluno dados[], int *n_alunos) { char buffer[max_name_size]; // Para guardar o nome do ficheiro FILE *fp; if (nome == NULL) { // Se não se introduziu o nome do ficheiro printf("introduza o nome do ficheiro a ler: "); if (!ler_nome(buffer, MAX_NAME_SIZE)) // Falhou leitura do nome nome= buffer; // fp= fopen(nome, "rb"); if (fp == NULL) { perror("erro a abrir ficheiro: "); /* da stdlib.h */ while (!feof(fp)) { // Enquanto não chega o fim do ficheiro if ((*n_alunos >= MAX_N_ALUNOS)!read_file_dados_aluno(fp, &dados[*n_alunos])) break; ++(*n_alunos); // incrementa contador de alunos no array fclose(fp); Como os dados são guardados em memória, é simples acrescentar um novo aluno basta preencher a primeira posição livre do array e incrementar o contador. A função adicionar_aluno recebe e modifica o array dados e o apontador para a variável inteira n_alunos, com o número de elementos do array. Usa a função ler_dados_aluno para ler os dados do utilizador, não incrementando o número de elementos se a leitura falhar. 5

6 /* Realiza a opção 2: Acrescentar aluno */ void adicionar_aluno(aluno dados[], int *n_alunos) { if (*n_alunos < MAX_N_ALUNOS) { // Se há espaço no array e if (ler_dados_aluno(&dados[*n_alunos])) // leu sem erros ++(*n_alunos); // incrementa número de alunos A operação de apagar um elemento ao array de dados é um pouco mais complicada. No array dados é necessário garantir que os *n_alunos primeiros elementos do array têm dados válidos. A opção usada foi de substituir o aluno removido pelo actual último aluno da lista, caso não se esteja a apagar o último elemento. Note-se que o array não está ordenado e portanto não há problemas em modificar a ordem. Podia-se também copiar todos os elementos restantes do array uma posição para baixo. Assim, depois de pedir o número de aluno a apagar, a função apagar_aluno procura o índice do aluno a apagar. Caso o número exista no array, copia o último elemento para essa posição, limpa a última posição e decrementa a variável com o número de elementos do array. /* Realiza a opção 3: Apagar aluno */ void apagar_aluno(aluno dados[], int *n_alunos) { int i, numero; if (*n_alunos <= 0) // Não há alunos para apagar printf("qual é o número do aluno a apagar? "); if (!ler_numero(&numero)) // Não foi introduzido número for (i= 0; i<*n_alunos; i++) if (dados[i].numero == numero) break; if (i == *n_alunos) // Não encontrou número // Apaga aluno na posição i (*n_alunos)--; // Decrementa um elemento ao array if (i!= *n_alunos) // Se não é o último elemento do array // copia último elemento do array para posição a apagar copia_dados_aluno(&dados[i], &dados[*n_alunos]); // Limpa dados do anterior último elemento do array inicia_dados_aluno(&dados[*n_alunos]); A função listar_alunos foi aproveitada para fazer a listagem de todos os alunos e dos alunos por turno dependendo de um parâmetro de entrada. No caso de se querer listar apenas um turno, é perguntado ao utilizador o número do turno. Os dados são escritos a partir de uma string que é construída pela função string_dados_aluno. typedef enum { LISTAR_TODOS, LISTAR_POR_TURNO tipo_listar; /* Realiza as opções 4: Listar alunos (se tipo == LISTAR_TODOS); 5: Listar alunos por turno (se tipo == LISTAR_POR_TURNO) */ void listar_alunos(tipo_listar tipo, Aluno dados[], int *n_alunos) { int i, cnt=0, turno= 0; if (tipo == LISTAR_POR_TURNO) { 6

7 printf("qual é o turno a listar? "); if (!ler_numero( &turno)) // Não foi introduzido número for (i= 0; i<*n_alunos; i++) { if (aluno_esta_definido(&dados[i]) && ((tipo == LISTAR_TODOS) (dados[i].turno == turno))) { printf("%s\n", string_dados_aluno(&dados[i])); /* EXERCÍCIO 1: MODIFICAR O CÓDIGO PARA esperar por ENTER do utilizador para continuar em cada MAX_LINES linhas, interrompendo se o utilizador introduzir 'q' */ printf("falta PROGRAMA ESPERA POR UM ENTER DO UTILIZADOR EM CADA %d LINHAS\n", MAX_LINES); A função salvar_alunos_ficheiro guarda o array dos alunos num ficheiro em modo binário. Repare que no caso de falhar uma escrita o ficheiro é apagado. /* Realiza a opção 6: Salvar alunos para ficheiro */ void salvar_alunos_ficheiro(aluno dados[], int *n_alunos) { char nome[max_name_size]; FILE *fp; int i; printf("introduza o nome do ficheiro a escrever: "); if (!ler_nome(nome, MAX_NAME_SIZE)) // Falhou leitura do nome fp= fopen(nome, "wb"); if (fp == NULL) { perror("erro a abrir ficheiro: "); for (i= 0; i<*n_alunos; i++) if (aluno_esta_definido(&dados[i])) if (!write_file_dados_aluno(fp, &dados[i])) { // Falhou escrita - aborta operação fclose(fp); remove(nome); // Apaga ficheiro fclose(fp); Finalmente vai-se desenvolver a função main (que deveria ser a primeira tarefa). Tal como no trabalho anterior, neste trabalho a função main está estruturada como um menu, que apresenta a lista de opções e em seguida corre uma função associada à opção escolhida. Neste caso, o parâmetro na linha de comando é opcional. Pode chamar-se a aplicação com um parâmetro (por exemplo./alunos dados.dat ), ou sem parâmetros (./alunos). No primeiro caso, o conteúdo do ficheiro é carregado para a memória. No segundo caso o processo de leitura do ficheiro é executado numa das opções. Depois, o programa deve ficar no menu principal até que o utilizador introduza a opção 0 Sair. Pretende-se que os alunos programem as tarefas do menu principal. 7

8 #include <stdio.h> #include "aluno.h" // Carrega as definições do ficheiro aluno.h #define MAX_NAME_SIZE 180 // Tamanho máximo de nome de ficheiro #define MAX_N_ALUNOS 400 // Dimensão do array onde se guardam // os dados dos alunos #define MAX_LINES 20 // Número máximo de linhas que pode // escrita sem esperar por um ENTER main(int argc, char *argv[]) { Aluno dados[max_n_alunos]; // Dados dos alunos int n_alunos= 0; // Contador de elementos usados no array // define a primeira posição livre do array int i; /* Inicia todas as posições do array de alunos */ for (i= 0; i<max_n_alunos; i++) inicia_dados_aluno(&dados[i]); printf("%s - Programa de gestão de alunos\n", argv[0]); if (argc == 2) { /* Programa chamado com um parâmetro */ printf("%s vai carregar todos os dados do ficheiro '%s'\n", argv[0], argv[1]); ler_alunos_ficheiro(argv[1], dados, &n_alunos); printf("falta PROGRAMAR O MENU PRINCIPAL\n"); /* EXERCÍCIO 2: PROGRAMAR O MENU PRINCIPAL DO PROGRAMA, com as opções: printf(" 0: Sair\n"); printf(" 1: Ler alunos de ficheiro\n"); printf(" 2: Acrescentar aluno\n"); printf(" 3: Apagar aluno\n"); printf(" 4: Listar alunos\n"); printf(" 5: Listar alunos por turno\n"); printf(" 6: Salvar alunos para ficheiro\n"); */ Cada opção é realizada utilizando uma das funções apresentadas anteriormente nesta secção. Para facilitar a vida na introdução de um número elevado de alunos foi criado um ficheiro binário com alguns alunos dados.dat, e é fornecido com o enunciado. 4 Makefile O uso da ferramenta make começa a ser interessante quando o programa começa a ter muitos ficheiros. Imagine um programa com 30 ficheiros de código (.c) e uns 10 de include (.h). Imagine que mudava o código num dos ficheiros de código. Não faz sentido compilar todos os ficheiros de código, mas apenas o que mudou. Assim, deve-se agora usar a opção -c no compilador para ele produzir apenas os ficheiros objecto (.o) de cada ficheiro de código e uma instrução final para linkar todos os ficheiros objecto para produzir o ficheiro executável. Este nosso trabalho ainda é muito pequenino, mas o ficheiro Makefile apresentado a seguir tem a seguinte interpretação. O objectivo principal é produzir o executável 8

9 lista_alunos. Outro objectivo que é tratado se se executar make clean é apagar todos os ficheiros objecto, todos os ficheiros terminados com ~, assim como o executável. Para o objectivo principal é dito que o executável depende dos tempos de modificação dos dois ficheiros objecto indicados. Caso algum deles tenha um tempo de modificação superior ao tempo do ficheiro executável, eles vão ter de ser actualizados e depois executa-se a operação de linkagem ( gcc o ). Para os actualizar vai-se seguir o que é dito na linha respectiva que tem a mesma estrutura (de quem depende e o que se deve fazer). Também pode pensar na Makefile ao contrário, a começar por baixo. Isto é, para cada ficheiro objecto é visto se ele está actualizado referentemente aos ficheiros de que depende, e depois é visto o executável referentemente aos ficheiros objecto. all: lista_alunos lista_alunos: lista_alunos.o aluno.o gcc -o lista_alunos lista_alunos.o aluno.o lista_alunos.o: lista_alunos.c aluno.h gcc -c lista_alunos.c aluno.o: aluno.c aluno.h gcc -c aluno.c clean: rm -f *~ *.o lista_alunos Existe um comando do Linux, designado por touch, que toca no ficheiro, actualizando-lhe a data de modificação. Experimente fazer ou $ touch aluno.c $ touch aluno.h e depois fazer make. Vai ver a ferramenta make executar o que deve para actualizar o ficheiro executável. 9

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 Ficheiros e estruturas http://tele1.dee.fct.unl.pt

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

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 Testes, condições e ciclos http://tele1.dee.fct.unl.pt

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º 5 Funções e Vectores

Leia mais

Sumário. Ficheiros. Ficheiros

Sumário. Ficheiros. Ficheiros Sumário Ficheiros Motivação Operações Ficheiros de texto e binários Manipulação de ficheiros de texto Abertura Encerramento Descritores de ficheiros: stdin, stdout, stderr Escrita Leitura Outras funções

Leia mais

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Manipulação de ficheiros de texto Programação 2010/2011 IST-DEEC Manipulação de Ficheiros 1 Sumário Ficheiros

Leia mais

Linguagem C Ficheiros Compilação Separada

Linguagem C Ficheiros Compilação Separada Linguagem C Ficheiros Compilação Separada typedef definição de tipos Apontadores para estruturas Ficheiros na bibiloteca standard do C Compilação Separada Definição de novos tipos em C É possível definir

Leia 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 1º semestre Trabalho nº 5 Funções http://tele1.dee.fct.unl.pt/pm

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

1/24 FICHEIROS DE TEXTO

1/24 FICHEIROS DE TEXTO 1/24 FICHEIROS DE TEXTO Hardware de entrada/saída 2/24 Hardware de entrada/saída Grande variedade de dispositivos de E/S (Input/Output) - de memória: disco interno e externo, DVD, pen, CD,... - de transmissão:

Leia mais

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica

13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Mestrado em Engenharia Física Tecnológica 13 a Aula - Instruções Condicionais. Ciclos. Pré-processador. Variáveis de ambiente. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física

Leia mais

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal ALGORITMOS AULA 01 Baseado nas aulas do Prof. Jorgiano Vidal LINGUAGEM C Uma das grandes vantagens do C é que ele possui tanto caracterìsticas de "alto nìvel" quanto de "baixo nìvel". Linguagem de propósito

Leia mais

A linguagem C (visão histórica)

A linguagem C (visão histórica) A linguagem C (visão histórica) A linguagem C é uma linguagem de programação desenvolvida no ínício dos anos 70 por Dennis Ritchie, que trabalhava nos laboratórios Bell e que também inciou em paralelo,

Leia mais

Programação. Folha Prática 10. Lab. 10. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved.

Programação. Folha Prática 10. Lab. 10. Departamento de Informática Universidade da Beira Interior Portugal. Copyright 2010 All rights reserved. Programação Folha Prática 10 Lab. 10 Departamento de Informática Universidade da Beira Interior Portugal Copyright 2010 All rights reserved. 1. Revisão. 2. Objectivos. 3. Exercícios LAB. 10 10ª semana

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 Programação em C 30/06/2014 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Qual o objetivo de um

Leia mais

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Introdução Copyright 2014 IFRN Agenda Conceitos básicos ANSI C Hello World Funções em C Exercícios 2 /26 A linguagem

Leia mais

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara

FUNÇÕES EM C Material adaptado da profa Silvana Maria Affonso de Lara Universidade do Estado de Minas Gerais - UEMG Curso de Engenharia da Computação FUNÇÕES EM C 1 Material adaptado da profa Silvana Maria Affonso de Lara ROTEIRO DA AULA Definição de Função Argumentos, retornos

Leia mais

Algoritmos e Programação

Algoritmos e Programação Algoritmos e Programação Aula 3 Introdução a Linguagem C Profa. Marina Gomes marinagomes@unipampa.edu.br 1 Aula de Hoje - Criar programas simples em C utilizando a estrutura básica; - Declarar variáveis;

Leia mais

Instituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados

Instituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados Instituto Superior Técnico Introdução aos Algoritmos e Estruturas de Dados Ano Lectivo de 2006/2007 2 o Semestre 1 o Teste A - 12 de Abril de 2007 Duração: 2h - O teste é sem consulta. - Para cada questão

Leia mais

Básico: estrutura de programa, sintaxe Interface com linha de comando

Básico: estrutura de programa, sintaxe Interface com linha de comando Programação em C Sintaxe Básico: estrutura de programa, sintaxe Interface com linha de comando Preprocessamento e compilação Makefiles Ponteiros e estruturas Bibliotecas, ficheiros include e funções Referências

Leia mais

Computação 2. Aula 8. Profª. Fabiany Arquivos

Computação 2. Aula 8. Profª. Fabiany Arquivos Computação 2 Aula 8 Arquivos Profª. Fabiany fabianyl@utfpr.edu.br E/S com Arquivos A linguagem C não possui nenhum comando de E/S. Todas as operações de E/S ocorrem mediante chamadas a funções de biblioteca

Leia mais

Conhecendo a Linguagem de Programação C

Conhecendo a Linguagem de Programação C Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Conhecendo a Linguagem de Programação C DCA0800 - Algoritmos e Lógica de Programação Heitor Medeiros 1 Como

Leia mais

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux Linguagem C Introdução Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux Porquê C em AC? A linguagem C fornece um modelo de programação próximo da máquina física

Leia mais

Exame de Programação Estruturada (A)

Exame de Programação Estruturada (A) Exame de Programação Estruturada (A) 2006.06.16 1. Resposta: UMA RESOLUÇÃO (VERSÃO A) static int indicevogal(int c) { switch(c) { case A : case a : return 0; case E : case e : return 1; case I : case i

Leia mais

PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017

PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017 PROGRAMAÇÃO E ALGORITMOS (LEII) Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2016/2017 Resumo Pré-processador Directivas Macros Exemplos Exercícios Pré-Processador O

Leia mais

Linguagem C. André Tavares da Silva.

Linguagem C. André Tavares da Silva. Linguagem C André Tavares da Silva dcc2ats@joinville.udesc.br Variáveis Posição nomeada de memória que é usada para guardar um valor que pode ser modificado pelo programa. Todas as variáveis devem ser

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II 1. Programação Básica 2019.1 Slides adaptados do material de Karina Mochetti Problema, Algoritmo, Programa Um programa de computador é a implementação de um algoritmo para

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º 3 Testes, condições

Leia mais

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas Programação MEAer e LEE Bertinho Andrade da Costa 2010/2011 1º Semestre Instituto Superior Técnico Argumentos da linha de comando Funções recursivas Programação 2010/2011 DEEC-IST Arg. da linha de comando;

Leia mais

Introdução à Programação Aula 16. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Introdução à Programação Aula 16. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação Introdução à Programação Aula 16 Prof. Max Santana Rolemberg Farias max.santana@univasf.edu.br Colegiado de Engenharia de Computação COMO UM PROGRAMA C É COMPILADO? 2 Compilação de um Programa A compilação

Leia mais

Fundamentos de Programação

Fundamentos de Programação Fundamentos de Programação CP41F Aula 2 Prof. Daniel Cavalcanti Jeronymo Conceito de algoritmo. Raciocínio lógico na construção de algoritmos. Estrutura de algoritmos. Universidade Tecnológica Federal

Leia mais

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos: CAP. IX - MANIPULAÇÃO DE ARQUIVOS 9.1 Generalidades sobre arquivos 9.2 Abertura e fechamento de arquivos 9.3 Arquivos textos e arquivos binários 9.4 Leitura e escrita em arquivos binários 9.5 Procura direta

Leia mais

Departamento de Engenharia Informática. Sistemas Operativos 1. Utilitário Make

Departamento de Engenharia Informática. Sistemas Operativos 1. Utilitário Make Departamento de Engenharia Informática Sistemas Operativos 1 Utilitário Make Março 2003 1. Modelo de Compilação da Linguagem C Compilar um programa muito simples em C requer, pelo menos, o ficheiro de

Leia mais

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM

Curso de C. Introdução by Arnaldo V. Moura e Daniel F. Ferber 3/10/ :43 AM Curso de C Introdução 1 Introdução Roteiro: Recordando Algoritmos Linguagem de Programação O computador Instruções de Máquina Níveis de Abstração Compilação 2 Algoritmos Recordando: Algoritmo: conjunto

Leia mais

TAD: Tipo Abstrato de Dados (parte 2)

TAD: Tipo Abstrato de Dados (parte 2) TAD: Tipo Abstrato de Dados (parte 2) SCC0502 Algoritmos e Estruturas de Dados I Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c Denominados de módulos Cada módulo deve

Leia mais

Linguagens de programação. Introdução ao C (continuação)

Linguagens de programação. Introdução ao C (continuação) Linguagens de programação Introdução ao C (continuação) M@nso 2003 Sumário Introdução à programação Linguagem C Repetição de instruções Ciclos com controlo inicial ciclo While ciclo For Ciclos com controlo

Leia mais

Fundamentos de Programação 1

Fundamentos de Programação 1 Fundamentos de Programação 1 Linguagem C Arquivos Seqüências ou de Texto. Slides 18 Prof. SIMÃO Jean Marcelo SIMÃO 1 Arquivo de Escrita 1 fopen ( nome.txt", "w" ); fputc ( caracter, arquivo); 2 #include

Leia mais

Gilberto A. S. Segundo. 24 de agosto de 2011

Gilberto A. S. Segundo. 24 de agosto de 2011 Exercícios - Alocação Dinâmica Gilberto A. S. Segundo Programação Aplicada de Computadores Engenharia Elétrica Universidade Federal do Espírito Santo - UFES 24 de agosto de 2011 1 / 23 Grupo de e-mail

Leia mais

Ponteiros e Tabelas. K&R: Capítulo 5

Ponteiros e Tabelas. K&R: Capítulo 5 Ponteiros e Tabelas K&R: Capítulo 5 Ponteiros e Tabelas Ponteiros e endereços Ponteiros e argumentos de funções Ponteiros e tabelas Alocação dinâmica de memória Aritmética de ponteiros Tabelas de ponteiros

Leia mais

3. Linguagem de Programação C

3. Linguagem de Programação C Introdução à Computação I IBM1006 3. Linguagem de Programação C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 3.2. Estrutura de Programas e Representação

Leia mais

MESMO QUE ESTAS VARIÁVEIS TENHAM NOME IDÊNTICOS

MESMO QUE ESTAS VARIÁVEIS TENHAM NOME IDÊNTICOS Funções As funções são blocos de instruções que facilitam o entendimento do código. Porque usar funções? Para permitir o reaproveitamento de código já construído (por você ou por outros programadores);

Leia mais

1º Exame 14 de Junho de Duração: 2h30 (+15 min) Número: Nome: Notas

1º Exame 14 de Junho de Duração: 2h30 (+15 min) Número: Nome: Notas Exame A Programação MEEC 2º Semestre 2017/18 1º Exame 14 de Junho de 2018. Duração: 2h30 (+15 min) Número: Nome: Notas Composição do teste: 4 folhas com problemas para resolver. Existem 9 problemas para

Leia mais

Módulo 7 Cadeias de Caracteres

Módulo 7 Cadeias de Caracteres Estruturas de Dados Módulo 7 Cadeias de Caracteres 9/8/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação e Algoritmos / Programação II 2º Semestre Exame - 1ª chamada Resolução 20/06/2013 1. [2.0 val] Apontadores (Responder esta questão nesta folha e entregar com

Leia mais

Argumentos da linha de comando Exemplos Recursividade de funções Exemplos

Argumentos da linha de comando Exemplos Recursividade de funções Exemplos Sumário Argumentos da linha de comando Exemplos Recursividade de funções Exemplos Programação 2007/2008 DEEC-IST 1 Argumentos da linha de comando Motivação: Nas aulas de laboratório foi utilizado o compilador

Leia mais

Controlo de Execução. K&R: Capitulo 3

Controlo de Execução. K&R: Capitulo 3 Controlo de Execução K&R: Capitulo 3 IAED, 2009/2010 Controlo de Execução Instruções e Blocos if else-if switch Ciclos: Instruçõeswhile e for Instruçãodo-while break e continue goto e labels 2 IAED, 2009/2010

Leia mais

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO Introdução Criada em 1972, por Dennis Ritchie; Centro de Pesquisas da Bell Laboratories; Para utilização no S.O. UNIX; C é uma linguagem

Leia mais

ADTs (Abstract Data Types): Motivação

ADTs (Abstract Data Types): Motivação ADTs (Abstract Data Types): Motivação Mesmas estruturas são usadas com vários tipos de dados Listas Pilhas Amontoado FIFOs Inteiros Reais Strings Estruturas O procedimento para inserir um inteiro, real,

Leia mais

Instituto Superior Técnico Algoritmos e Estruturas de Dados

Instituto Superior Técnico Algoritmos e Estruturas de Dados Instituto Superior Técnico Algoritmos e Estruturas de Dados Ano Lectivo de 2005/2006 2 o Semestre 1 o Teste A - 8 de Abril de 2006 Duração: 2h - O teste é sem consulta. - Para cada questão com escolha

Leia mais

Funções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná

Funções em C. Lucas Ferrari de Oliveira Professor Adjunto. Linguagem de Programação Estruturada I. Universidade Federal do Paraná em C Linguagem de Programação Estruturada I Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná Sumário Funções: Conceitos; Forma Geral das funções; Regras de Escopo; Argumentos

Leia mais

TAD: Tipo Abstrato de Dados (parte 2)

TAD: Tipo Abstrato de Dados (parte 2) TAD: Tipo Abstrato de Dados (parte 2) SCC0202 Algoritmos e Estruturas de Dados I Prof. Thiago A. S. Pardo Modularização em C Programa em C pode ser dividido em vários arquivos Arquivos fonte com extensão.c

Leia mais

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02 Programação 1 Atribuição, operadores aritméticos, entrada de dados Técnico em Eletrônica Semestre 5 02 Armazenando na memória tipo de variável #include #include main() { int ano; Declaração

Leia mais

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

LINGUAGEM C: FUNÇÕES FUNÇÃO 08/01/2018. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado

Leia mais

TE091 Programação Orientada a Objetos Engenharia Elétrica

TE091 Programação Orientada a Objetos Engenharia Elétrica TE091 Programação Orientada a Objetos Engenharia Elétrica Revisão Rápida de Programação em C Prof. Carlos Marcelo Pedroso 2015 Revisão Linguagem C Características principais Modularidade: uso de procedimentos

Leia mais

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano O C++ foi inicialmente desenvolvido por Bjarne Stroustrup durante a década de 1980 com o objetivo de melhorar a linguagem de programação C, mantendo a compatibilidade com esta linguagem. Exemplos de Aplicações

Leia mais

Manipulação de Arquivos Exercício/Exemplo:

Manipulação de Arquivos Exercício/Exemplo: Manipulação de Arquivos Exercício/Exemplo: Com o que vimos até o momento sobre manipulação de arquivos. Construa um função em C que possua a capacidade de escrever um inteiro em um arquivo binário. Escreva

Leia mais

Linguagens de Programação I

Linguagens de Programação I Linguagens de Programação I Tema # 4 Operadores em C Susana M Iglesias FUNÇÕES ENTRADA-SAÍDA I/O printf(), utilizada para enviar dados ao dispositivo de saída padrão (stdout), scanf(), utilizada para ler

Leia mais

EXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota

EXERCÍCIO DE SONDAGEM TURMA 02 SEMESTRE DATA: 01/11/2016. Matrícula Nome Nota Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática Departamento de Sistemas e Computação Disciplina: Técnicas de Programação Prof.: José Eustáquio Rangel de Queiroz EXERCÍCIO

Leia mais

Introdução à Programação em C

Introdução à Programação em C Introdução à Programação em C Funções Resumo Aula Anterior Tabelas Strings (Tabelas de Caracteres) 2 1 Resumo Funções Definição Protótipo e implementação return e void Passagem por valor Exemplos 3 Funções

Leia mais

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes? Introdução à Ciência da Computação Ponteiros em C Prof. Ricardo J. G. B. Campello Sumário Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Operações Ponteiros

Leia mais

Arrays, Criação de Funções, Estruturas e Manipulação de Arquivos.

Arrays, Criação de Funções, Estruturas e Manipulação de Arquivos. Faculdade de Engenharia da Computação Disciplina: Lógica de Programação Arrays, Criação de Funções, Estruturas e Manipulação de Arquivos. Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

Linguagem C: Introdução

Linguagem C: Introdução Linguagem C: Introdução Linguagem C É uma Linguagem de programação genérica que é utilizada para a criação de programas diversos como: Processadores de texto Planilhas eletrônicas Sistemas operacionais

Leia 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 Arquivos Funções para abrir e fechar arquivos Arquivos em modo texto Arquivos em modo binário ATENÇÃO

Leia mais

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação Programação em C Variáveis e Expressões DCA0800 Algoritmos e Lógica de Programação Heitor Medeiros Florencio

Leia 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 TRABALHO FINAL DE AVALIAÇÃO Gestão

Leia mais

Métodos Computacionais. Tipos Estruturados

Métodos Computacionais. Tipos Estruturados Métodos Computacionais Tipos Estruturados Tipos Estruturados C oferece tipos primitivos que servem para representar valores simples Reais (float, double), inteiros (int), caracter (char) C oferece também

Leia mais

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná Linguagem C IF61A/IF71A - Computação 1 Prof. Leonelo Almeida Universidade Tecnológica Federal do Paraná Até agora... Sabemos construir algoritmos que tenham: Variáveis Comandos sequenciais Entrada e saída

Leia mais

Listas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1

Listas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1 Listas Lineares Elerson R. S. Santos elerson@dcc.ufmg.br Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1 http://www2.dcc.ufmg.br/livros/algoritmos/ Listas Lineares Uma das formas mais simples

Leia mais

Programação de Computadores II. Cap. 7 Cadeias de Caracteres

Programação de Computadores II. Cap. 7 Cadeias de Caracteres Programação de Computadores II Cap. 7 Cadeias de Caracteres Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais

Leia mais

Introdução à Programação

Introdução à Programação Programação de Computadores Introdução à Programação Prof. Helton Fábio de Matos hfmatos@dcc.ufmg.br Agenda Algoritmo & Programa Variáveis Declaração de tipos Comando de entrada ou de leitura Comando de

Leia mais

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Conceitos básicos. Computação eletrônica: Gurvan Huiban Computação eletrônica: Conceitos básicos Gurvan Huiban ghuiban@cin.ufpe.br Plano de aula 1 Estrutura de um programa em C 2 Variáveis e constantes 3 Comandos de entrada e saída Estrutura de um programa

Leia mais

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação II 2º Semestre Exame Época Norma (15 val) Resolução 22/06/2018 1 [1,00 val + 1,00 val] - Memória Dinâmica Considere as seguintes declarações de variáveis: int

Leia mais

SSC INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL REGISTROS E ARQUIVOS. Profa. Dra. Milena Guessi Margarido

SSC INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL REGISTROS E ARQUIVOS. Profa. Dra. Milena Guessi Margarido SSC 301 - INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL REGISTROS E ARQUIVOS Profa. Dra. Milena Guessi Margarido (milena@icmc.usp.br) Número Bairro CEP Cidade Logradouro Endereço País REGISTRO Estrutura

Leia mais

Tratamento de Caracteres

Tratamento de Caracteres Tratamento de Caracteres Notas de Aula Prof. Francisco Rapchan www.geocities.com/chicorapchan A tabela ASCII Se os computadores manipulam apenas números, como eles podem armazenar os caracteres de um nome

Leia mais

Programação 2017/2018 2º Semestre

Programação 2017/2018 2º Semestre Mestrado em Engenharia Electrotécnica e de Computadores Programação 2017/2018 2º Semestre Aula de Problemas 1 Os alunos deverão executar os passos aqui descritos no seu computador pessoal ou no laboratório.

Leia mais

Programação de Computadores II Aula 03. Linguagem C I

Programação de Computadores II Aula 03. Linguagem C I Programação de Computadores II Slides cedidos por Karina Mochetti 2018.1 C vs Python Python é uma linguagem muito mais nova, de 1991. C é muito mais eciente, os programas rodam mais rápido. Seu objetivo

Leia mais

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

#include <stdio.h> Void main() { printf( Cheguei!\n); } INTRODUÇÃO A LINGUAGEM C #include Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C ANTES DO C ERA A LINGUAGEM B B foi essencialmente uma simplificação da linguagem BCPL. B só tinha um tipo de dado, que

Leia mais

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa.

LINGUAGEM C: FUNÇÕES FUNÇÃO 04/07/2017. Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. LINGUAGEM C: FUNÇÕES Prof. André Backes FUNÇÃO Funções são blocos de código que podem ser nomeados e chamados de dentro de um programa. printf(): função que escreve na tela scanf(): função que lê o teclado

Leia mais

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

Linguagem C Controle do Fluxo de Execução. Lógica de Programação Linguagem C Controle do Fluxo de Execução Lógica de Programação Caro(a) aluno(a), Aqui começaremos a escrever os nossos primeiros programas em uma Linguagem de Programação. Divirta-se!!! Estrutura Seqüencial

Leia mais

Algoritmos II prof. Daniel Oliveira

Algoritmos II prof. Daniel Oliveira Algoritmos II prof. Daniel Oliveira Revisar conceitos abordados na disciplina anterior Abordar conceitos vistos com a linguagem C# Variáveis e listas Expressões Estruturas de controle do tipo condicional

Leia mais

LINGUAGEM C: ARQUIVOS

LINGUAGEM C: ARQUIVOS LINGUAGEM C: ARQUIVOS Prof. André Backes Arquivos 2 Por que usar arquivos? Permitem armazenar grande quantidade de informação; Persistência dos dados (disco); Acesso aos dados poder ser não seqüencial;

Leia mais

Computação e Programação (2007/2008-1º Semestre)

Computação e Programação (2007/2008-1º Semestre) Computação e Programação (2007/2008-1º Semestre) Exame Tipo: 2008-01-14 MEMec - LEAN DURAÇÃO: 3 horas Leia com atenção os pontos que se seguem: Comece por escrever o seu nome e número nesta folha, e número

Leia mais

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. 1 Estruturas da linguagem C 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões. Identificadores Os identificadores seguem a duas regras: 1. Devem ser começados por letras

Leia mais

Introdução a Programação. Arquivos

Introdução a Programação. Arquivos Introdução a Programação Arquivos Tópicos da Aula Hoje aprenderemos a persistir dados Conceito de arquivos Importância de persistência Modos de acesso de arquivos em C Operações em arquivos Funções de

Leia mais

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2002/ Valores

ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA 2002/ Valores ESCOLA SUPERIOR DE TECNOLOGIA DE TOMAR DEPARTAMENTO DE ENGENHARIA INFORMÁTICA INTRODUÇÃO À PROGRAMAÇÃO (ENG. INFORMÁTICA) COMPUTADORES E PROGRAMAÇÃO I (ENG. ELECTROTÉCNICA) 2002/2003 TRABALHO PRÁTICO Nº

Leia mais

Indexação e Busca. O objetivo deste trabalho é projetar e implementar um sistema de programas para indexação e busca em arquivos de texto.

Indexação e Busca. O objetivo deste trabalho é projetar e implementar um sistema de programas para indexação e busca em arquivos de texto. Universidade Federal do Espírito Santo Departamento de Informática Estruturas de Dados 2017/1 Profa. Claudine Badue Trabalho 2 1. Objetivo Indexação e Busca O objetivo deste trabalho é projetar e implementar

Leia mais

Algoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon

Algoritmos e Programação. Linguagem C Procedimentos e. Eliane Pozzebon Algoritmos e Programação Linguagem C Procedimentos e Funções Eliane Pozzebon Procedimentos e Funções Procedimentos são estruturas que agrupam um conjunto de comandos, que são executados quando o procedimento

Leia mais

Programação de Computadores II. Cap. 7 Cadeias de Caracteres 1/2

Programação de Computadores II. Cap. 7 Cadeias de Caracteres 1/2 Programação de Computadores II Cap. 7 Cadeias de Caracteres 1/2 Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos

Leia mais

Programação I Funções. Prof. Carlos Alberto

Programação I Funções. Prof. Carlos Alberto Programação I Funções Prof. Carlos Alberto carlos.batista@facape.br carlos36_batista@yahoo.com.br Funções Funções são blocos de códigos que podem ser nomeados e chamados de dentro de um programa; Funções

Leia mais

Programação Básica. Estrutura de um algoritmo

Programação Básica. Estrutura de um algoritmo Programação Básica Estrutura de um algoritmo Código-fonte Como vimos na aula anterior um algoritmo pode ser representado usando um fluxograma Um algoritmo pode também ser representado usando texto Esse

Leia mais

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014

UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 UNIVERSIDADE LUSÓFONA DE HUMANIDADES E TECNOLOGIAS 2º Semestre 2013/2014 Programação em C 18/06/2014 Leia com atenção as perguntas e justifique cuidadosamente todas as respostas 1. Qual o objetivo de uma

Leia mais

Working 03 : Conceitos Básicos I

Working 03 : Conceitos Básicos I Working 03 : Conceitos Básicos I Objetivos: Dominar os conceitos básicos da linguagem de programação C; Aprender a utilizar o compilador, identificando os erros de sintaxe do código fonte; Prazo de Envio:

Leia mais

Leitura Segura de Strings

Leitura Segura de Strings Leitura Segura de Strings As funções da biblioteca padrão de C que podem ser usadas para leitura de strings não são suficientemente adequadas para esta finalidade básica. Nesta seção, serão descritos alguns

Leia mais

Curso de C. Declaração de Variáveis 18/3/ :48 1

Curso de C. Declaração de Variáveis 18/3/ :48 1 Curso de C Declaração de Variáveis 18/3/2008 15:48 1 Declaração de Variáveis Objetivos: Aprender como: Criar variáveis Atribuir um valor inicial à variável Escolher um nome para a variável 18/3/2008 15:48

Leia mais

1 Exercícios com ponteiros

1 Exercícios com ponteiros Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática

Leia mais

Conceitos Básicos de C

Conceitos Básicos de C Conceitos Básicos de C Bibliografia Problem Solving & Program design in C, Jeri R. Hanly e Elliot B. Kpffman, 3 a edição Data Structures and Algorithm Analysis in C, Mark Allen Weiss, 2 a edição, Addison-Wesley,

Leia mais

prim = A ; prim = &A[0];

prim = A ; prim = &A[0]; 57 12 - MAIS SOBRE APONTADOR 12.1 - Ponteiros e arrays Em C, ponteiros e matrizes são tratados de maneira semelhante. 12.1.1 - Nome O nome é um ponteiro, ou seja, aponta (contém o endereço) para o primeiro

Leia mais

Ponteiros & tabelas (cont.) K&R: Capítulo 5

Ponteiros & tabelas (cont.) K&R: Capítulo 5 Ponteiros & tabelas (cont.) K&R: Capítulo 5 Sinopse da aula de hoje Pointers in a nutshell & alocação dinâmica de memória Estruturas, funções e apontadores Estruturas auto-referenciadas Exemplo de aplicação:

Leia mais

Disciplina de Algoritmos e Programação

Disciplina de Algoritmos e Programação Disciplina de Algoritmos e Programação Último Conteúdo Estruturas de condição Estrutura condicional simples Utilização da estrutura de condição if com expressões lógicas simples Utilização do comando if

Leia mais

Conceitos básicos de programação

Conceitos básicos de programação Constantes class Exemplo { static void Main() { float fahr, celsius; int lower, upper, step; lower = 0; /* limite inferior da tabela de temperaturas */ upper = 300; /* limite superior */ step = 20; /*

Leia mais