Laboratório de Programação - Exercício 25

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

Download "Laboratório de Programação - Exercício 25"

Transcrição

1 Laboratório de Programação - Exercício 25 Funções de Argumentos Variáveis João Araujo Ribeiro [email protected] Universidade do Estado do Rio de Janeiro Departamento de Engenharia de Sistemas e Computação João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 1 / 19

2 Resumo 1 Ex25 - Funções de Argumentos Variáveis João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 2 / 19

3 Exercício 25 -Funções de Argumentos Variáveis Em C você pode criar suas próprias versões de funções como printf e scanf com uma função de argumento variável. Estas funções usam stdarg.h e com elas você pode criar belas interfaces para sua biblioteca. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 3 / 19

4 Necessárias? Entender funções vararg não é essencial para criar programas em C. Poucas vezes vocês precisará delas, contudo, saber como uma função vararg funciona vai te ajudar a debugar as que você usa e também você vai entender melhor como funciona o computador. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 4 / 19

5 ex25.c (1/6) 1 /** WARNING: Este código é recente e 2 ** pode ainda n~ao estar completamente correto. */ 3 #include <stdlib.h> 4 #include <stdio.h> 5 #include <stdarg.h> 6 #include "dbg.h" 7 8 #define MAX_DATA int read_string(char **out_string, int max_buffer) 11 { 12 *out_string = calloc(1, max_buffer + 1); 13 check_mem(*out_string); char *result = fgets(*out_string, max_buffer, stdin); 16 check(result!= NULL, "Erro na entrada."); return 0; error: 21 if(*out_string) free(*out_string); 22 *out_string = NULL; Continua João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 5 / 19

6 ex25.c (2/6) 23 return -1; 24 } int read_int(int *out_int) 27 { 28 char *input = NULL; 29 int rc = read_string(&input, MAX_DATA); 30 check(rc == 0, "Falha na leitura de número."); *out_int = atoi(input); free(input); 35 return 0; error: 38 if(input) free(input); 39 return -1; 40 } int read_scan(const char *fmt,...) 43 { 44 int i = 0; João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 6 / 19

7 ex25.c (3/6) 45 int rc = 0; 46 int *out_int = NULL; 47 char *out_char = NULL; 48 char **out_string = NULL; 49 int max_buffer = 0; va_list argp; 52 va_start(argp, fmt); for(i = 0; fmt[i]!= \0 ; i++) { 55 if(fmt[i] == % ) { 56 i++; 57 switch(fmt[i]) { 58 case \0 : 59 sentinel("formato inválido, voc^e terminou com %%."); 60 break; case d : 63 out_int = va_arg(argp, int *); 64 rc = read_int(out_int); 65 check(rc == 0, "Falha na leitura de int."); 66 break; João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 7 / 19

8 ex25.c (4/6) case c : 69 out_char = va_arg(argp, char *); 70 *out_char = fgetc(stdin); 71 break; case s : 74 max_buffer = va_arg(argp, int); 75 out_string = va_arg(argp, char **); 76 rc = read_string(out_string, max_buffer); 77 check(rc == 0, "Falha na leitura de string."); 78 break; default: 81 sentinel("formato inválido."); 82 } 83 } else { 84 fgetc(stdin); 85 } check(!feof(stdin) &&!ferror(stdin), "Erro na entrada."); 88 } João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 8 / 19

9 ex25.c (5/6) va_end(argp); 91 return 0; error: 94 va_end(argp); 95 return -1; 96 } int main(int argc, char *argv[]) 99 { 00 char *prenome = NULL; 01 char inicial = ; 02 char *nome_de_familia = NULL; 03 int idade = 0; printf("qual é seu prenome? "); 06 int rc = read_scan("%s", MAX_DATA, &prenome); 07 check(rc == 0, "Falha no prenome."); printf("qual sua inicial do nome do meio? "); 10 rc = read_scan("%c\n", &inicial); João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 9 / 19

10 ex25.c (6/6) 11 check(rc == 0, "Falha em inicial."); printf("qual é seu nome de família? "); 14 rc = read_scan("%s", MAX_DATA, &nome_de_familia); 15 check(rc == 0, "Falha no nome de fampilia."); printf("qual sua idade? "); 18 rc = read_scan("%d", &idade); printf("---- RESULTADOS ----\n"); 21 printf("prenome: %s", prenome); 22 printf("inicial: %c \n", inicial); 23 printf("nome de Família: %s", nome_de_familia); 24 printf("idade: %d\n", idade); free(prenome); 27 free(nome_de_familia); 28 return 0; 29 error: 30 return -1; 31 } João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 10 / 19

11 read scan Este programa é similar ao exercício anterior, exceto que escrevemos uma versão própria de scanf que manipula strings ao nosso modo. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 11 / 19

12 Função varargs A função vararg aqui é chamada read scanf e faz a mesma coisa que scanf usando a estrutura de dados va list e suas funções e macros de suporte. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 12 / 19

13 Como funciona 1: Atribuímos ao último parâmetro da função a palavra-chave... que indica para C que esta função tomará qualquer número de parâmetros após o argumento fmt. Podemos colocar qualquer número de argumentos antes dele, mas não podemos colocar nenhum após. Após declarar algumas variáveis, criamos uma variável va list e a inicializamos com va start. Isto configura o mecanismo em stdarg.h que manipula os argumentos variáveis. Então usamos um loop for através da string de formatação fmt e processamos o mesmo tipo que scanf possui, porém muito mais simples. Temos apenas inteiros, caracteres e strings. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 13 / 19

14 Como funciona 2: Quando encontramos um formato, usamos um switch para saber o que fazer. Agora, para obter uma variável de va list argp usamos a macro va arg(argp, TIPO), onde TIPO é o tipo exato para o qual vamos atribuir este parâmetro. O problema deste design é que voamos às cegas, de forma que se você não tiver argumentos suficientes o programa vai dar crash. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 14 / 19

15 Como funciona 3: A diferença interessante para scanf é que assumimos que as pessoas querem read scan para criar strings que ela lê quando usa o formato s. Quando você fornece esta sequência, a função pega dois parâmetros da pilha de va list argp: o tamanho máximo para ler e o ponteiro da saáida da string de caracteres. Usando esta informação, apenas rodamos read string para fazer o trabalho correto. Isto faz read scan mais consistente que scanf, posto que você sempre fornece um endereço & nas variáveis para tê-las atribuídas corretamente. Finalmente, se encontramos um caractere que não está no formato, apenas lemos um caractere para saltá-lo. Não nos preocupamos sobre qual caractere é, apenas saltamos ele. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 15 / 19

16 Execução $ make ex25 cc -Wall -g -DNDEBUG ex25.c -o ex25./ex25 Qual é seu prenome? José Qual sua inicial do nome do meio? L Qual é seu nome de família? Silva Qual sua idade? RESULTADOS ---- Prenome: José Inicial: L Nome de Família: Silva Idade: 25 João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 16 / 19

17 Como quebrar o código? Este programa deve ser mais robusto contra buffer overflow, mas ele não trabalha com entrada formatada tão bem quanto scanf. Para tentar quebrá-lo, mude o código de modo a que você esqueça de passar o tamanho inicial para o formato %s. Tente também fornecer mais dados que MAX DATA, e então veja como não usar calloc em read string afeta como ela funciona. Finalmente, existe um problema que faz com que fgets coma o caractere de nova linha. Tente consertá-lo usando fgetc mas deixe o \0 que termina a string. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 17 / 19

18 Trabalho extra Tenha certeza absoluta sobre que acad uma das variáveis out estão fazendo.mais importante é out string e como ela aponta para um ponteiro, assim, entender quando você está atribuindo o ponteiro vs o conteúdo eé importante. Examine cada situação. Escreva uma função similar a printf que use o sistema varargs e reescreva o main para usá-la. Como sempre, leia a man page disto para entender como tudo funciona. Algumas plataformas usam macros e outras usam funções e algumas simplesmente nada. Tudo depende do compilador e da plataforma que você usa. João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 18 / 19

19 FIM João Araujo Ribeiro (UERJ) Laboratório de Programação LabProg 19 / 19

AULA 3 Alocação dinâmica de memória: Ponteiros

AULA 3 Alocação dinâmica de memória: Ponteiros UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA 3 Alocação dinâmica de memória: Ponteiros Estrutura de Dados 1 Variáveis X Ponteiros VARIÁVEL - Estrutura para armazenamento

Leia mais

Linguagem C: strings. Prof. Críston Algoritmos e Programação

Linguagem C: strings. Prof. Críston Algoritmos e Programação Linguagem C: strings Prof. Críston Algoritmos e Programação String Uma string é um vetor de caracteres (texto) char nome [tamanho]; O texto que vamos gravar em uma string não precisa ocupar todos os caracteres

Leia mais

Aula 3/4: Vetores/Matrizes e Ponteiros

Aula 3/4: Vetores/Matrizes e Ponteiros Carlos Henrique/Introdução C++ Aula 3/4: Vetores/Matrizes e Ponteiros Funções: Função main (int argc, char ** argv) Recursão Vetores/Matrizes/Strings Vetor (Matriz Unidimensional) Gerando um ponteiro para

Leia mais

Referências. Programação de Computadores II. Cap. 7 Cadeias de Caracteres. Caracteres. Tópicos

Referências. Programação de Computadores II. Cap. 7 Cadeias de Caracteres. Caracteres. Tópicos Referências Programação de Computadores II Cap. 7 Cadeias de Caracteres Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004) Capítulo 7 Livro: Waldemar

Leia mais

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

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C Sistemas Operacionais e Introdução à Programação Programação com linguagem C 1 Entrada e saída: escrevendo na tela Veja uma comparação entre um programa Portugol e seu equivalente em C: Inicio Inteiro

Leia mais

1 Cálculo do valor à vista

1 Cálculo do valor à vista MAC-5 Introdução à Computação para Ciências Exatas e Tecnologia IO Segundo Exercício Programa Entregar até 7/0/2007 Comprar à vista ou comprar à prazo? Várias lojas já possuem alguns planos de crediário

Leia mais

Aula Extra. Depurador Code::Blocks. Monitoria de Introdução à Programação

Aula Extra. Depurador Code::Blocks. Monitoria de Introdução à Programação Aula Extra Depurador Code::Blocks Monitoria de Introdução à Programação Depurador - Definição Um depurador (em inglês: debugger) é um programa de computador usado para testar outros programas e fazer sua

Leia mais

MC-102 - Teste de Mesa e Comandos Repetitivos

MC-102 - Teste de Mesa e Comandos Repetitivos MC-102 - Teste de Mesa e Comandos Repetitivos Elaborado por Raoni Teixeira e Editado por Danillo Roberto Pereira Instituto de Computação Unicamp Primeiro Semestre de 2013 Introdução Introdução Pode acontecer

Leia mais

1 Exercícios com ponteiros

1 Exercícios com ponteiros Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Oitava Aula Prática - 29 de outubro de 2010 O objetivo desta aula prática é exercitar ponteiros e funções. 1 Exercícios com ponteiros

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

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

Computação 2. Aula 8. Profª. Fabiany Arquivos Computação 2 Aula 8 Arquivos Profª. Fabiany [email protected] 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

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores 12/03/2011 VARIÁVEIS E TIPOS DE DADOS

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores 12/03/2011 VARIÁVEIS E TIPOS DE DADOS Linguagem C Introdução à Programação C Introdução à Ciência da Computação I Prof. Denis F. Wolf Origem de C está associada ao sistema Unix Histórico: 1970: Ken Thompson desenvolve B, baseada em BCPL, para

Leia mais

Aula 16: Manipulação de Arquivos em C

Aula 16: Manipulação de Arquivos em C Aula 16: Manipulação de Arquivos em C Fernanda Passos Universidade Federal Fluminense Programação de Computadores IV Fernanda Passos (UFF) Manipulação de Arquivos Programação de Computadores IV 1 / 33

Leia mais

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza

ESTRUTURAS CONDICIONAIS. Introdução à Ciência da ComputaçãoI Simone Senger de Souza ESTRUTURAS CONDICIONAIS Introdução à Ciência da ComputaçãoI Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais Estrutura

Leia mais

INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS

INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS Material da Prof. Ana Eliza Dados e comandos, para serem processados, devem estar na memória do computador. Memória Definição:

Leia mais

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C Exercícios: Structs 1. Utilizando estrutura, fazer um programa em C que permita

Leia mais

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza

ESTRUTURAS CONDICIONAIS. Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza ESTRUTURAS CONDICIONAIS Baseado nos slides de autoria de Rosely Sanches e Simone Senger de Souza Estruturas de Controle ESTRUTURA SEQUENCIAL ESTRUTURA CONDICIONAL ESTRUTURA DE REPETIÇÃO 2 Estruturas Condicionais

Leia mais

Tipos Abstratos de Dados (TAD)

Tipos Abstratos de Dados (TAD) Instituto de C Tipos Abstratos de Dados (TAD) Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Tópicos Principais Módulos e Compilação em separado

Leia mais

21 Strings. 21.1 O que são strings? 21.2 Leitura de Strings. Ronaldo F. Hashimoto e Carlos H. Morimoto

21 Strings. 21.1 O que são strings? 21.2 Leitura de Strings. Ronaldo F. Hashimoto e Carlos H. Morimoto 21 Strings Ronaldo F. Hashimoto e Carlos H. Morimoto Oobjetivodestaaulaéintroduziroconceitodestrings. Aofinaldessaaulavocêdeverásaber: Descrever o que são strings. Descrever a distinção entre strings evetoresdecaracteres.

Leia mais

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria USP - ICMC - SSC SSC 0501-1o. Semestre 2015 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria Prof. Fernando Santos Osório Email: fosorio [at] icmc. usp. br, gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/

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. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C

3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C 3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C 3.1. Compilação de um Programa C O compilador C realiza a compilação do código-fonte de um programa em cinco etapas: edição, pré-processamento, compilação,

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

Conversão Visualg à C++ Prof. Paulo Cesar F. de Oliveira, BSc, PhD

Conversão Visualg à C++ Prof. Paulo Cesar F. de Oliveira, BSc, PhD Conversão Visualg à C++ Prof. Paulo Cesar F. de Oliveira, BSc, PhD 1 Unidade 01-a Algoritmos e Programação Seção 1.1 Visualg 2 Formato do Visualg algoritmo nome do algoritmo // Função: // Autor: // Data:

Leia mais

Linguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação

Linguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação Algoritmos e Lógica de Programação Linguagem de Programação C Linguagem C Entrada e Saída de dados Reinaldo Gomes [email protected] Fluxo de Saída Padrão Saída Formatada: ( ) Tem a função de

Leia mais

BC1424 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros, estruturas e alocação de memória

BC1424 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros, estruturas e alocação de memória BC1424 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros, estruturas e alocação de memória Prof. Jesús P. Mena-Chalco 1Q-2016 1 Cloud9 Crie uma conta no c9.io Apenas é requerido criar uma área (máquina

Leia mais

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C 1 Implementações básicas : a) Implementar a função LerValorValido que verifica se um valor introduzido pelo utilizador pertence ao conjunto limitado por dois dados valores

Leia mais

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO LÓGICA DE PROGRAMAÇÃO PROFª. M.Sc. JULIANA H Q BENACCHIO Também chamado de estrutura de seleção múltipla (caso). Assim como o if-else, o switch também é uma estrutura de seleção. O if-else realiza o teste

Leia mais

Estruturas Condicionais

Estruturas Condicionais Estruturas Condicionais Introdução Vamos reconsiderar um programa bem simples em C. No início ele pergunta ao usuário o raio do círculo e com esta informação calcula a área e o perímetro da figura. #include

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

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

Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário!

Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário! ALGORITMOS E ESTRUTURAS DE DADOS I DCC/UFMG Trabalho Prático II - Resta 1 Data de Entrega: Conferir no calendário! Pedro O.S. Vaz de Melo May 29, 2013 1 DESCRIÇÃO DO PROBLEMA O objetivo deste trabalho

Leia mais

Programação: Vetores

Programação: Vetores Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia

Leia mais

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas.

Introdução. Software Básico Aula 3. Prof. Dr. Rogério Vargas. Introdução Software Básico Aula 3 Prof. Dr. Rogério Vargas http://rogerio.in Provocação Você já se perguntou como é que os programas que você escreve são traduzidos em instruções executáveis pelas estruturas

Leia mais

Reader e Writer para streams de caracteres (texto).

Reader e Writer para streams de caracteres (texto). Folha 1-1 Recordando POO: Streams Uma stream é uma abstracção que representa uma fonte genérica de entrada de dados ou um destino genérico para escrita de dados que é definida independentemente do dispositivo

Leia mais

BC-0505 Processamento da Informação

BC-0505 Processamento da Informação BC-0505 Processamento da Informação 0.Declarar Variáveis/ Atributos (Armazenar Dados) 1.Entrada de Dados (Obter dados = Leitura) double raio = 0; double area = 0; double PI = 3.14159; 2.Processamento (=

Leia mais

1. Estrutura de Dados

1. Estrutura de Dados 1. Estrutura de Dados Não existe vitória sem sacrifício! Filme Transformers Um computador é uma máquina que manipula informações. O estudo da ciência da computação inclui o exame da organização, manipulação

Leia mais

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução Métodos de Programação I 2. 27 Ciclo com Contador : instrução for identificador downto for de variável := expressão to expressão do instrução UMA INSTRUÇÃO (SIMPLES OU COMPOSTA) Neste caso o ciclo é repetido

Leia mais

3.1 - Funções para manipular dados de entrada e saída padrão

3.1 - Funções para manipular dados de entrada e saída padrão 1616161616161616161616161616161616161616161616161616 3- ENTRADA E SAÍDA EM C Os principais meios para executar operações de entrada e saída (E/S) são: Entrada e saída pelo console (ou padrão): teclado

Leia mais

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas

Computação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany [email protected] ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include

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

Cláudio C. Rodrigues Faculdade da Computação - UFU

Cláudio C. Rodrigues Faculdade da Computação - UFU Cláudio C. Rodrigues Faculdade da Computação - UFU LINGUAGEM C 07: ARQUIVOS Trabalhando com arquivos O sistema de entrada e saída do ANSI C é composto por uma série de funções cujos protótipos estão reunidos

Leia mais

Algoritmos APRENDENDO A PROGRAMAR COM C#

Algoritmos APRENDENDO A PROGRAMAR COM C# Algoritmos APRENDENDO A PROGRAMAR COM C# Alô Mundo AULA 01 Conhecendo o ambiente O objetivo principal desse programa não é mostrar a mensagem Alo Mundo. O objetivo é apresentar o ambiente de desenvolvimento

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

Programação de Computadores I. Linguagem C Função

Programação de Computadores I. Linguagem C Função Linguagem C Função Prof. Edwar Saliba Júnior Fevereiro de 2011 Unidade 07 Função 1 Conceitos As técnicas de programação dizem que, sempre que possível, evite códigos extensos, separando o mesmo em funções,

Leia mais

Conceitos c++ Prof. Demétrios Coutinho INFORMÁTICA BÁSICA

Conceitos c++ Prof. Demétrios Coutinho INFORMÁTICA BÁSICA INFORMÁTICA BÁSICA Conceitos c++ Prof. Demétrios Coutinho C a m p u s P a u d o s F e r r o s D i s c i p l i n a d e O r g a n i z a ç ã o d e A l g o r i t m o s D e m e t r i o s. c o u t i n h o @

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

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO INTRODUÇÃO À LINGUAGEM PASCAL CESAR BEZERRA TEIXEIRA,MSC PREFÁCIO A linguagem C foi desenvolvida no início da década de 70 por dois pesquisadores do Bell Laboratories, Brian Kernihgan e Dennis Ritchie,

Leia mais

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo

Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo Lógica e Linguagem de Programação Convertendo um algoritmo em pseudocódigo para a linguagem C Professor: Danilo Giacobo Este documento explica como transformar um algoritmo escrito na forma pseudocódigo

Leia mais

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO Curso: Engenharia de Computação e Ciência da Computação Data: 10/09/2013 Disciplina: Programação Estruturada Valor: 3,0 pontos Professor: Henrique Monteiro Cristovão Nota: Aluno: Prova resolvida 4ª Prova

Leia mais

Ficheiros binários 1. Ficheiros binários

Ficheiros binários 1. Ficheiros binários Ficheiros binários 1 Ficheiros binários 1. Considere que dispõe de ficheiros binários cujo conteúdo é constituído por uma ou mais estruturas como a indicada a seguir struct registo { }; int ref; float

Leia mais

CONFIGURANDO SERVIDOR SAT SS-1000

CONFIGURANDO SERVIDOR SAT SS-1000 1. COMUNICAÇÃO SAT-PC CONFIGURANDO SERVIDOR SAT SS-1000 Por especificação, todos os SATs, obrigatoriamente, devem se comunicar com o computador pelo cabo USB. A Sweda optou por um mecanismo moderno para

Leia mais

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS Disciplina de Nivelamento - 2000/1: ALGORITMOS & ESTRUTURAS DE DADOS Professor Responsável: Prof. Fernando Santos

Leia mais

Estruturas de Dados. Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos

Estruturas de Dados. Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos Estruturas de Dados Alguns dados não costumam ser tão simples assim... Podem ser compostos por vários dados distintos Estruturas de Dados Programação de Computadores 1 de 26 Tipos Estruturados de Dados

Leia mais

Sistemas Distribuídos Capítulo 4 - Aula 5

Sistemas Distribuídos Capítulo 4 - Aula 5 Sistemas Distribuídos Capítulo 4 - Aula 5 Aula Passada Clusters de Servidores Migração de Código Comunicação (Cap. 4) Aula de hoje Chamada de Procedimento Remoto - RPC Fundamentos 1 Chamada de Procedimento

Leia mais

Introdução. Algoritmos

Introdução. Algoritmos Introdução Aqui introduzimos o funcionamento básico dos computadores e ensinamos como podemos utilizá-los e programá-los para realizar tarefas de nosso interesse. Algoritmos Um algoritmo é uma seqüência

Leia mais

Programação em FORTRAN V. João Manuel R. S. Tavares

Programação em FORTRAN V. João Manuel R. S. Tavares Programação em FORTRAN V João Manuel R. S. Tavares Output no écran Exemplo de escrita em formato livre (*): radius = 7.2345121 PRINT *,'Radius = ',radius,' cm' Resultado: Radius = 7.2345121 cm @2001 -

Leia mais

Linguagem de Programação I

Linguagem de Programação I Linguagem de ção I Curso de Sistemas de Informação Karla Donato Fook karladf@ifmaedubr DESU / DAI 2016 O que é um programa de computador? 2 1 de computador E_1 E_n Resultado Entrada(s) Processamento Saída(s)

Leia mais

Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009

Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009 Programação 2009/2010 MEEC - MEAer Laboratório 5 Semana de 26 de outubro de 2009 Ao desenvolver os seguintes programas tenha em atenção o bom uso dos comentários, o uso da indentação e o correcto nome

Leia mais