Verificando corretude da triangulação
|
|
- Stéphanie Ximenes
- 5 Há anos
- Visualizações:
Transcrição
1 Verificando corretude da triangulação Tássio Naia dos Santos 19 de dezembro de O programa Este é um pequeno programa utilitário para verificação automatizada das respostas dadas por um programa de triangulação. Recebe como entrada dois arquivos: o arquivo que serviu de entrada para o programa de triangulação, e um arquivo com a saída da triangulação. Este programa imprime Correto caso a triangulação esteja correta, e Incorreto caso a triangulação não seja uma triangulação válida para o polígono de entrada. A validação usa quatro fatos: 1. Toda triangulação possui n 3 diagonais, onde n é o número de vértices do polígono; 2. Toda diagonal tem por extremidades vértices distintos do polígono; 3. As diagonais não ligam vértices consecutivos do polígono; 4. Se duas diagonais se intersectam, sua interseção é um vértice do polígono. Se em algum momento descobrimos que a triangulação não é a correta, mudamos o estado da variável incorreto. Ao término do programa, imprimimos Correto ou Incorreto de acordo com seu estado. Cabeçalho 5 int main (int argc, char argv ) { short incorreto = 0; Variáveis locais de main 3 Argumentos corretos? 2 Lê o polígono 6 Lê e diagonais no segundo arquivo e verifica se estão corretas 9 end : Libera estruturas de dados 20 if (incorreto) printf ("Incorreto\n"); else printf ("Correto\n"); return 0; 2. O programa deve receber dois argumentos. Argumentos corretos? 2 if (argc 3) { fprintf (stderr, "! uso: %s <arquivo com poligono> <arquivo com diagonais>\n", argv [0]); exit (0); 3. Como não sabemos a princípio quantos pontos o polígono tem, iniciamos usando um vetor estaticamente alocado de pontos, e passamos para alocação dinâmica quando ele é totalmente usado. Seu tamanho é tamanho buffer, e o o tamanho estático é tamanho estatico. #define tamanho estatico
2 Variáveis locais de main 3 double X estatico[tamanho estatico], Y estatico[tamanho estatico], X = X estatico, Y = Y estatico; int tamanho buffer = tamanho estatico; Veja também os trechoss 7, 10 e Para aumentar o tamanho do buffer usamos a macro aumenta tamanho( ). Se o buffer é o vetor estático, alocamos memória e copiamos os dados; caso contrário simplesmente realocamos memória. A liberação de memória restaura a situação inicial (memória alocada estaticamente). #define aumenta tamanho xy () { while (0) #define libera xy () { do if (tamanho buffer tamanho estatico) { tamanho buffer = 2; X = realloc(x, sizeof (double) tamanho buffer ); Y = realloc(y, sizeof (double) tamanho buffer ); else { X = malloc(sizeof (double) tamanho buffer 2); Y = malloc(sizeof (double) tamanho buffer 2); memcpy (X, X estatico, sizeof (double) tamanho buffer ); memcpy (Y, Y estatico, sizeof (double) tamanho buffer ); tamanho buffer = 2; do if (tamanho buffer tamanho estatico) { free (X); free (Y ); X = X estatico; Y = Y estatico; tamanho buffer = tamanho estatico; while (0) 5. Cabeçalho 5 #include <string.h> / Para memcpy ( ). / Veja também os trechoss 8 e Mantemos o número de pontos armazenado em uma variável num pontos lidos. Lê o polígono 6 if ((entrada = fopen (argv [1], "r")) Λ) { fprintf (stderr, "! N~ao consegui abrir o arquivo %s.\n", argv [1]); exit (1); while (fscanf (entrada, "%lf %lf", &X[num pontos lidos ], &Y [num pontos lidos ]) 2) { ++num pontos lidos ; if (num pontos lidos tamanho buffer ) aumenta tamanho xy ( ); printf ("Li %d pontos.\n", num pontos lidos ); Fecha o arquivo de entrada 19 2
3 7. Variáveis locais de main 3 + FILE entrada = Λ; int num pontos lidos = 0; 8. Cabeçalho 5 + #include <stdio.h> #include <stdlib.h> 9. Uma diagonal é um conjunto de dois pontos, representado no arquivo de saída por quatro coordenadas. O que fazemos aqui é ler uma diagonal, e verificar se por alguma razão ela invalida a triangulação. Juntamente com os testes, encontramos os índices u e v dos vértices extremos da diagonal. Vamos armazenar as diagonais em um vetor de inteiros com 2(n 3) posições. As entradas 2i e 2i+1 representam que existe uma diagonal de extremos (X[2 i],y [2 i]) e (X[2 i + 1],Y [2 i + 1]). Lê e diagonais no segundo arquivo e verifica se estão corretas 9 diagonal = malloc(sizeof (int) 2 (num pontos lidos 3)); num diagonais lidas = 0; u = v = 1; Abre o arquivo de entrada 18 while (fscanf (entrada, "%lf %lf %lf %lf", &x1, &y1, &x2, &y2 ) 4) { Mais diagonais do que o esperado? 11 Diagonal cruza alguma das arestas? Termina em vértices do polígono? 13 Diagonal cruza alguma das diagonais? 16 diagonal [2 num diagonais lidas ] = u; diagonal [2 num diagonais lidas + 1] = v; ++num diagonais lidas ; Menos diagonais do que o esperado? 17 free (diagonal ); diagonal = Λ; Fecha o arquivo de entrada Variáveis locais de main 3 + int diagonal = Λ, num diagonais lidas = 0, u, v; double x1, y1, x2, y2 ; 11. Mais diagonais do que o esperado? 11 if (num diagonais lidas num pontos lidos 3) { / Já temos n 3 diagonais e acabamos de ler mais uma. / printf ("[Mais diagonais do que esperado]\n"); break; 12. Vamos precisar de um modo para testar se dois segmentos se cruzam. Para isso usamos a seguinte técnica: sejam i = (x i, y i ) para i = 1, 2, 3, 4. Os segmentos (1, 2) cruza o segmento (3, 4) se quando percorremos o segmento (1, 2), os pontos 3 e 4 ficam de lados diferentes; e vice-versa: quando percorremos o segmento (3, 4), os pontos 3 e 4 ficam de lados diferentes. O lado em um ponto i fica do segmento orientado jk segmento está associado ao sinal de uma das coordenadas do produto vetorial dos vetores ij ik, quando os consideramos imersos em um espaço 3D, no plano z = 0. Esse produto é dado por (x j x i )(y k y i ) (x k x i )(y j y i ) Assim, estar de lados diferentes equivale a ter sinais diferentes. 3
4 #define prin (x1, y1, x2, y2, x3, y3 ) / Produto interno. / (((x2 ) (x1 )) ((y3 ) (y1 )) ((x3 ) (x1 )) ((y2 ) (y1 ))) #define cruza (x1, y1, x2, y2, x3, y3, x4, y4 ) ((prin ((x1 ), (y1 ), (x2 ), (y2 ), (x3 ), (y3 )) prin ((x1 ), (y1 ), (x2 ), (y2 ), (x4 ), (y4 )) < eps ) (prin ((x3 ), (y3 ), (x4 ), (y4 ), (x1 ), (y1 )) prin ((x3 ), (y3 ), (x4 ), (y4 ), (x2 ), (y2 )) < eps )) 13. Vamos percorrer todas as arestas do polígono, testando a interseção entre a diagonal e as arestas do polígono. Durante esse processo, identificamos os vértices u e v que são os extremos da diagonal. #define eps #define ponto eh extremo da diagonal (i, x, y) ((fabs ((x) X[i]) < eps ) (fabs ((y) Y [i]) < eps )) Diagonal cruza alguma das arestas? Termina em vértices do polígono? 13 for (i = 0; i < num pontos lidos ; ++i) { if (ponto eh extremo da diagonal (i, x1, y1 )) u = i; else if (ponto eh extremo da diagonal (i, x2, y2 )) v = i; / Só um dos extremos pode ser o vértice i. / if (cruza (X[i], Y [i], X[(i + 1) % num pontos lidos ], Y [(i + 1) % num pontos lidos ], x1, y1, x2, y2 )) { printf ("[Diagonal (%5.2f,%5.2f)--(%5.2f,%5.2f) cruza a aresta (%5.2f,%5.2f)--(%5.2f,%5.\ 2f)]\n", x1, y1, x2, y2, X[i], Y [i], X[(i + 1) % num pontos lidos ], Y [(i + 1) % num pontos lidos ]); break; if (u 1 v 1) { printf ("[Algum dos extremos da diagonal n~ao é vertice. u=%d, v=%d]\n", u, v); if (u (v + 1) % num pontos lidos v (u + 1) % num pontos lidos ) { printf ("[Extremos s~ao vértices consecutivos do polígono. u=%d, v=%d]\n", u, v); 14. Variáveis locais de main 3 + int i; 15. Cabeçalho 5 + #include <math.h> / Para fabs ( ). / 16. Diagonal cruza alguma das diagonais? 16 for (i = 0; i < num diagonais lidas ; i += 2) { if (cruza (X[diagonal [i]], Y [diagonal [i]], X[diagonal [i + 1]], Y [diagonal [i + 1]], x1, y1, x2, y2 )) { printf ("[Diagonal (%5.2f,%5.2f)--(%5.2f,%5.2f) cruza a diagonal (%5.2f,%5.2f)--(%5.2f,%\ 5.2f)]\n", x1, y1, x2, y2, X[diagonal [i]], Y [diagonal [i]], X[diagonal [i + 1]], Y [diagonal [i + 1]]); break; 17. Menos diagonais do que o esperado? 17 if (num diagonais lidas < num pontos lidos 3) { printf ("[Menos diagonais do que esperado]\n"); 4
5 18. Abre o arquivo de entrada 18 if ((entrada = fopen (argv [2], "r")) Λ) { fprintf (stderr, "! N~ao consegui abrir o arquivo %s.\n", argv [2]); goto end ; 19. Fecha o arquivo de entrada 19 fclose (entrada ); entrada = Λ; Código utilizado nos trechos 6 e Libera estruturas de dados 20 libera xy ( ); 5
6 Índice Remissivo argc: 1, 2. argv : 1, 2, 6, 18. aumenta tamanho: 4. aumenta tamanho xy : 4, 6. cruza : 12, 13, 16. diagonal : 9, 10, 16. end : 1, 18. entrada : 6, 7, 9, 18, 19. eps : 12, 13. exit : 2, 6. fabs : 13, 15. fclose : 19. fopen : 6, 18. fprintf : 2, 6, 18. free : 4, 9. fscanf : 6, 9. i: 14. incorreto: 1, 11, 13, 16, 17. libera xy : 4, 20. main : 1. malloc: 4, 9. memcpy : 4, 5. num diagonais lidas : 9, 10, 11, 16, 17. num pontos lidos : 6, 7, 9, 11, 13, 17. ponto eh extremo da diagonal : 13. prin : 12. printf : 1, 6, 11, 13, 16, 17. realloc: 4. stderr : 2, 6, 18. tamanho buffer : 3, 4, 6. tamanho estatico: 3, 4. u: 10. v: 10. X: 3. X estatico: 3, 4. x1 : 9, 10, 12, 13, 16. x2 : 9, 10, 12, 13, 16. x3 : 12. x4 : 12. Y : 3. Y estatico: 3, 4. y1 : 9, 10, 12, 13, 16. y2 : 9, 10, 12, 13, 16. y3 : 12. y4 : 12. 6
7 Lista de trechos Abre o arquivo de entrada 18 Utilizado no trecho 9. Argumentos corretos? 2 Utilizado no trecho 1. Cabeçalho 5, 8, 15 Utilizado no trecho 1. Diagonal cruza alguma das arestas? Termina em vértices do polígono? 13 Utilizado no trecho 9. Diagonal cruza alguma das diagonais? 16 Utilizado no trecho 9. Fecha o arquivo de entrada 19 Utilizado nos trechos 6 e 9. Lê e diagonais no segundo arquivo e verifica se estão corretas 9 Utilizado no trecho 1. Lê o polígono 6 Utilizado no trecho 1. Libera estruturas de dados 20 Utilizado no trecho 1. Mais diagonais do que o esperado? 11 Utilizado no trecho 9. Menos diagonais do que o esperado? 17 Utilizado no trecho 9. Variáveis locais de main 3, 7, 10, 14 Utilizado no trecho 1. 7
Triangulação de polígono simples com o algoritmo de Lee & Preparata
Triangulação de polígono simples com o algoritmo de Lee & Preparata Tássio Naia dos Santos 20 de dezembro de 2011 às 10 h 33 Sumário 1. Objetivo....................................................... 1
Leia maisINF 1620 P1-18/09/04 Questão 1 Nome:
INF 1620 P1-18/09/04 Questão 1 Considerando a definição da série harmônica abaixo: H n =1+ 1 2 + 1 3 + 1 4 + 1 5 + K+ 1 n (a) Escreva uma função que calcule o valor de H n dado o número de termos da série
Leia maisComputação 2. Aula 9. Diego Addan Arquivos
Computação 2 Aula 9 Arquivos Diego Addan diegoaddan@gmail.com 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 maisDisciplina 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 maisAluno: Valor Nota Q1 3.0 Q2 2.5 Q3 2.5 Q4 2.0 Total 10.0
P4 Programação II 2012.2 Departamento de Informática/PUC- Rio Aluno: Matrícula: Turma: 1. A prova é sem consulta e sem perguntas. A interpretação do enunciado faz parte da prova. 2. A prova deve ser completamente
Leia maisCAP. 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 maisPIP/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 maisComputaçã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 maisFundamentos 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 maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria
USP - ICMC - SSC SSC 0501-1o. Semestre 2011 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 maisINF 1620 P1-16/09/06 Questão 1 Nome:
INF 1620 P1-16/09/06 Questão 1 Considerando a fórmula para o cálculo da distância entre dois pontos (x 1, y 1 ) e (x 2, y 2 ) apresentada a seguir: d = (x 2 " x 1 ) 2 + (y 2 " y 1 ) 2 (a) Escreva uma função
Leia maisMAC-115 Introdução à Computação para Ciências Exatas e Tecnologia IO Terceiro Exercício-Programa Entregar até 09/11/2007
MAC-115 Introdução à Computação para Ciências Exatas e Tecnologia IO Terceiro Exercício-Programa Entregar até 09/11/2007 O Problema da Mochila São dados um inteiro positivo n e dois vetores quant e custot,
Leia maisAlocação Dinâmica de Memória - Exercício
Alocação Dinâmica de Memória - Exercício Construa um programa que leia da entrada padrão o número de linhas e de colunas de uma matriz de floats, aloque espaço dinamicamente para esta e a inicialize, com
Leia mais13. ALOCAÇÃO DINÂMICA DE MEMÓRIA
787878787878787878787878787878787878787878787878787878 13. ALOCAÇÃO DINÂMICA DE MEMÓRIA Sempre é necessário declarar o número de elementos do array. Mas e se ele for desconhecido? E se ele variar? Pode
Leia maisComputação 2. Aula Profª. Fabiany Listas Duplamente Encadeadas
Computação 2 Aula 10.1 Listas Duplamente Encadeadas Profª. Fabiany fabianyl@utfpr.edu.br ListaEncadeada.h #ifndef _LISTAENCADEADA_H_ #define _LISTAENCADEADA_H_ #include #include #include
Leia maisProgramação II. Arquivos - Conceito. Arquivos
Programação II Arquivos Jocélio Passos joceliodpassos@bol.com.br C Comp Total, Cap 9 Espaço para armazenar dados em memória auxiliar (não volátil) Arquivos em C podem ser também terminais ou impressoras
Leia maisINF 1620 P2-14/10/05 Questão 1 Nome:
INF 1620 P2-14/10/05 Questão 1 Considere um cadastro de produtos de um estoque, com as seguintes informações para cada produto: Código de identificação do produto: representado por um valor inteiro Nome
Leia maisAluno: Matrícula: Turma:
Matrícula: Turma: Questão 1) (1,5 pontos) a) (1,0 pontos) Escreva uma função com nome diaseguinte que possui quatro parâmetros. Os três primeiros parâmetros são ponteiros para inteiros representando endereços
Leia maisDepartamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos
Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I Aula 13 Arquivos Responsável Seiji Isotani, Rafaela V. Rocha sisotani@icmc.usp.br rafaela.vilela@gmail.com
Leia maisMestrado em Engenharia Física Tecnológica
5 a Aula - Ciclo for. Leitura e Escrita em Ficheiros. Programação Mestrado em Engenharia Física Tecnológica Samuel M. Eleutério sme@tecnico.ulisboa.pt Departamento de Física Instituto Superior Técnico
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental
USP - ICMC - SSC SSC 0301-2o. Semestre 2013 Disciplina de Introdução à Computação para Engenharia Ambiental 1 Prof. Dr. Fernando Santos Osório / Prof. Artur Lovato Cunha LRM - Laboratório de Robótica Móvel
Leia maisAlgoritmos e Estruturas de dados
Algoritmos e Estruturas de dados Listas Encadeadas Prof. Dr. Fábio Rodrigues de la Rocha (Listas Encadeadas) 1 / 21 Definição: Anteriormente estudamos listas encadeadas que foram implementadas como vetores
Leia maisDisciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]
USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC /
Leia maisUSP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]
USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC /
Leia maisINF 1620 P1-17/09/05 Questão 1 Nome:
INF 1620 P1-17/09/05 Questão 1 Considere as equações de movimento para calcular a posição (s) e velocidade (v) de uma partícula em um determinado instante t, dado sua aceleração a, posição inicial s 0
Leia maisComputadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Aula de Hoje Vetores e alocação dinâmica Vetores Alocação dinâmica Vetores locais e funções ATENÇÃO Esta apresentação
Leia maisIntrodução a Programação. Ponteiros e Vetores, Alocação Dinâmica
Introdução a Programação Ponteiros e Vetores, Alocação Dinâmica Tópicos da Aula Hoje aprenderemos que existe uma forte relação entre ponteiros e vetores Associação entre ponteiros e vetores Ponteiros constantes
Leia maisIntroduçã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 maisINSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE Algoritmos ANSI C - Arquivos Copyright 2014 IFRN Agenda Conceito Tipos de arquivos Texto Binário Stream Principais funções Exemplos
Leia maisOutline. 33. Manipulação de arquivos DIM
Outline 33. Manipulação de arquivos DIM031 015.1 Leitura e escrita 3 s DIM031 33. Manipulação de arquivos 015.1 1 / 4 DIM031 33. Manipulação de arquivos 015.1 / 4 Arquivo = entidade de armazenamento de
Leia maisINF 1620 P1-11/04/08 Questão 1 Nome:
INF 1620 P1-11/04/08 Questão 1 Nas Olimpíadas, em uma determinada modalidade esportiva, os competidores recebem a nota de quatro jurados e a nota final é o resultado da média das quatro notas menos um
Leia maisArquivos. Programação de Computadores I. Natália Batista.
Arquivos Programação de Computadores I Natália Batista nataliabatista@decom.cefetmg.br 1. Arquivos Estruturas de dados armazenadas fora da memória principal do computador, por exemplo em discos. Usados
Leia maisMódulo 5 Vetores e Alocação Dinâmica
Estruturas de Dados Módulo 5 Vetores e Alocação Dinâmica 1/9/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 maisTÉCNICAS DE PROGRAMAÇÃO
TÉCNICAS DE PROGRAMAÇÃO Arquivo Conceitos Arquivo Fluxo de bytes stream Linguagem C Estrutura do tipo FILE FILE contém informações do arquivo Tamanho Ponteiro para buffer dados Atual operação sobre o arquivo
Leia maisAula 26: Arquivos de texto
Aula 26: Arquivos de texto Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2019/1 Departamento de Computação UFOP Aulas anteriores Estruturas heterogêneas Alocação
Leia maisDepartamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010 Aluno: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova deve ser completamente
Leia maisINF 1620 P4-09/07/03 Questão 1 Nome:
INF 1620 P4-09/07/03 Questão 1 Um ponto geométrico no espaço 2D é representado pelas coordenadas reais x e y. Considere uma aplicação que precisa manipular pontos, através da implementação de duas funções.
Leia maisSSC304 Introdução à Programação Para Engenharias. Arquivos. GE4 Bio
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias Arquivos GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos
Leia maisReinaldo Gomes Alocação Dinâmica
Algoritmos e Lógica de Programação Linguagem C Alocação Dinâmica i de Memória Reinaldo Gomes reinaldo@cefet-al.br Alocação Dinâmica Quando declaramos uma variável ou um arranjo, o compilador automaticamente
Leia maisa) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: ( 1)
INF 620 P - 7/04/04 Questão a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: Ou seja: π 4 * + 3 π 5 7 + 9 i ( ) 4 * n i= 0 2 * i + + K Esta função
Leia mais1 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 maisMétodos Computacionais. Arquivos
Métodos Computacionais Arquivos Arquivos Um arquivo representa um elemento de informação armazenado em memória secundária (disco) Características: Informações são persistidas Atribui-se nomes aos elementos
Leia maisCurso de Programação C em Ambientes Linux Aula 05
Curso de Programação C em Ambientes Linux Aula 05 Centro de Engenharias da Mobilidade - UFSC Professores Gian Berkenbrock e Giovani Gracioli http://www.lisha.ufsc.br/c+language+course+resources Conteúdo
Leia mais9. Arquivos em C. Prof. Renato Tinós. Departamento de Computação e Matemática (FFCLRP/USP) Introdução à Computação II
Introdução à Computação II 5952011 9. Arquivos em C Prof. Renato Tinós Departamento de Computação e Matemática (FFCLRP/USP) 1 Principais Tópicos 9. Arquivos em C 9.1. Introdução 9.2. Escrita 9.3. Leitura
Leia mais1 Exercícios com ponteiros
Computação para Informática Funções e Ponteiros1 EXERCÍCIOS COM PONTEIROS Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Funções e ponteiros O objetivo desta aula prática
Leia maisAula 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 maisDepartamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 26/11/2010 Aluno: Matrícula: Turma: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova
Leia maisArquivos em C. Material da Prof. Ana Eliza
em C Material da Prof. Ana Eliza Definição Um arquivo é uma estrutura de dados linear ( lista ) que é mantida fora da memória principal, em um dispositivo de armazenamento (memória secundária). Um arquivo
Leia maisLinguagem C: Arquivo-Texto
Prof. Paulo R. S. L. Coelho paulo@facom.ufu.br Faculdade de Computação Universidade Federal de Uberlândia GEQ007 Organização 1 Introdução em C 2 3 Organização Introdução em C 1 Introdução em C 2 3 Introdução
Leia maisDepartamento de Informática - PUC-Rio INF 1007 Programação 2 P1 17/04/2010
Departamento de Informática - PUC-Rio INF 1007 Programação 2 P1 17/04/2010 Aluno: Instruções: 1) Escreva seu nome completo, matrícula e turma em todas as folhas desta prova; 2) A prova deve ser completamente
Leia maisProgramação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos
Leia mais1/34 GESTÃO DINÂMICA DE MEMÓRIA
1/34 GESTÃO DINÂMICA DE MEMÓRIA Memória Estática 2/34 Memória Estática Exemplo #include main() { int V[300], N; do{ printf ( N =? ); scanf ( %d, &N); while ((N < 0) (N > 300); for (i = 0; i
Leia maisCapítulo 06: Arquivos
Capítulo 06: Arquivos INF1004 e INF1005 Programação 1 Pontifícia Universidade Católica Departamento de Informática Funções de entrada e saída em arquivos Motivação: quando um programa precisa processar
Leia maisIntrodução à Computação II AULA 08 BCC Noturno - EMA896115B
Introdução à Computação II AULA 08 BCC Noturno - EMA896115B Prof. Rafael Oliveira olivrap@gmail.com Universidade Estadual Paulista Júlio de Mesquita Filho UNESP Rio Claro 2014 (Sem 2) O ambiente de execução
Leia maisLinguagem C. Ponteiros. Alex Vidigal Bastos.
Linguagem C Ponteiros Alex Vidigal Bastos alexvbh@gmail.com Ponteiros Ponteiros são variáveis que contém endereços. Estas variáveis apontam para algum determinado endereço da memória. Em geral, o ponteiro
Leia maisEstruturas de Dados. Módulo 15 - Arquivos. 2/6/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 15 - Arquivos 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Leia maisArquivos. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC
Arquivos INF1005 Programação I Profa. Simone D.J. Barbosa simone@inf.puc-rio.br sala 410 RDC 1 arquivos tópicos por que usar arquivos manipulação de arquivos lendo dados de arquivos (modo texto) escrevendo
Leia maisP2 Programação II Departamento de Informática/PUC-Rio
P2 Programação II 2012.2 Departamento de Informática/PUC-Rio Aluno: Matrícula: Turma: 1. A prova é sem consulta e sem perguntas. A interpretação do enunciado faz parte da prova. 2. A prova deve ser completamente
Leia maisEstruturas de Dados Aula 6: Cadeias de 28/03/2010
Estruturas de Dados Aula 6: Cadeias de Caracteres 28/03/2010 Caracteres Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis
Leia maisEstruturas de Dados Aula 6: Cadeias de Caracteres
Estruturas de Dados Aula 6: Cadeias de Caracteres Caracteres Caracteres são representados internamente por códigos numéricos Tipo char (inteiro pequeno ) 1 byte (8 bits) 256 caracteres possíveis Códigos
Leia maisINF 1007 Programação II
INF 1007 Programação II Aula 04 Alocação Dinâmica Edirlei Soares de Lima Vetores - Declaração e Inicialização Declaração de um vetor: int meu_vetor[10]; Reserva um espaço de memória
Leia mais1 O filtro da mediana
CCM0118 Computação I Departamento de Ciência da Computação IME-USP Curso de Ciências Moleculares Turma 22 Segundo Semestre de 2012 Quarto Exercício-Programa Prazo de entrega: até 4 de dezembro de 2012.
Leia maisAlocação Estática e Dinâmica. Prof. M.Sc. Mariella Berger
Alocação Estática e Dinâmica Prof. M.Sc. Mariella Berger http://www.inf.ufes.br/~mberger mberger@inf.ufes.br mariellaberger@gmail.com Alocação Estática Estratégia de alocação de memória na qual toda a
Leia maisManipulação de Arquivos
Manipulação de Arquivos Estrutura de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM Tipo
Leia maisINF 1620 P3-27/11/04 Questão 1 Nome:
INF 1620 P3-27/11/04 Questão 1 Considere um arquivo texto com as notas dos alunos de uma disciplina. Os dados de cada aluno são armazenados em duas linhas do arquivo: uma com o seu nome (cadeia com até
Leia maisProgramação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO
Programação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO Introdução As informações que os programas utilizam são perdidas quando eles são finalizados ou quando o computador é desligado.
Leia maisINF 1620 P3-25/11/05 Questão 1 Nome:
INF 1620 P3-25/11/05 Questão 1 Dizemos que uma matriz quadrada é um quadrado mágico se a soma dos elementos de cada linha, a soma dos elementos de cada coluna e a soma dos elementos de sua diagonal principal
Leia maisAlocação Dinâmica em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Alocação Dinâmica em C Profa Rosana Braga Adaptado de material preparado pela profa Silvana Maria Affonso de Lara
Leia maisREVISÃO DE C. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
REVISÃO DE C Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REVISÃO DE C Ponteiros Alocação dinâmica de memória Recursão INSTITUTO DE COMPUTAÇÃO - UFF 2 PONTEIROS PONTEIROS C permite o armazenamento
Leia maisINF 1620 P4 11/12/06 Questão 1 Nome:
INF 1620 P4 11/12/06 Questão 1 Considere que o cálculo da multa para o pagamento de um determinado imposto varia de acordo com a tabela a seguir: Valor do Imposto Original Multa por mês de atraso até R$
Leia maisArquivos em C Parte 2
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Arquivos em C Parte 2 Profa Rosana Braga Material preparado pela profa Silvana Maria Affonso de Lara 1º semestre de
Leia maisIntrodução a Programação. Manipulando Arquivos em Modo Texto
Introdução a Programação Manipulando Arquivos em Modo Texto Tópicos da Aula Hoje aprenderemos funções de manipulação de arquivos texto Funções de leitura em modo texto Funções de escrita em modo texto
Leia maisINF 1620 P4 30/06/07 Questão 1 Nome:
INF 1620 P4 30/06/07 Questão 1 O maior divisor comum (MDC) de dois números inteiros é o maior número inteiro que faz uma divisão exata (com resto zero) desses dois números. Por exemplo, o MDC de 32 e 40
Leia mais13a. Aula Manipulação de arquivos
13a. Aula Manipulação de arquivos 2013.2 O sistema de entrada e saída do ANSI C é composto por uma série de funções (fopen, fprintf, fgets, fclose) cujos protótipos estão reunidos em stdio.h Todas estas
Leia maisProgramação II. Files Read & Write. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Files Read & Write Bruno Feijó Dept. de Informática, PUC-Rio Funções de entrada e saída em arquivos Motivação: quando um programa precisa processar um volume de dados muito grande Imagine
Leia maisCapítulo 6: Arquivos
Capítulo 6: Arquivos Waldemar Celes e Roberto Ierusalimschy 29 de Fevereiro de 2012 1 Funções de entrada e saída em arquivos Nos capítulos anteriores, desenvolvemos programas que capturam seus dados de
Leia maisIntroduçã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 maisAula teórica: /6. Enunciado
Aula teórica: 28-04-2009 1/6 Enunciado No ficheiro dados.txt encontra-se a informação associada aos alunos de Programação e as respectivas notas obtidas por frequência (Aprendizagem). Os dados guardados
Leia maisAlocação de Memória. Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR)
Alocação de Memória Linguagem de Programação Estruturada 1 Alocação dinâmica e ponteiros Lucas Ferrari de Oliveira Professor Adjunto Universidade Federal do Paraná (UFPR) Sumario Introdução Alocação Estática
Leia maisINF 1620 P1-14/04/07 Questão 1 Nome:
INF 1620 P1-14/04/07 Questão 1 Considerando o critério de aprovação de uma disciplina que determina que um aluno está aprovado se a média ponderada de suas três provas for maior ou igual a 5.0, onde a
Leia maisO que é a modularização
capa O que é a modularização Código Modularizado Código Não Modularizado Modularização Porque modularizar um código? -Decompor uma tarefa complexa em tarefas menores e de fácil solução. -Fazer uso da técnica
Leia maisSSC304 Introdução à Programação Para Engenharias. Alocação Dinâmica. GE4 Bio
Universidade de São Paulo Instituto de Ciências Matemáticas e de Computação Departamento de Sistemas de Computação Introdução à Para Engenharias GE4 Bio GE4Bio Grupo de Estudos em Sinais Biológicos Prof.Dr.
Leia maisTipos Abstratos de Dados. Estrutura de Dados
Tipos Abstratos de Dados Tipo Abstrato de Dados ou TAD Idéia principal: desvincular o tipo de dado (valores e operações) de sua implementação: O que o tipo faz e não como ele faz! Vantagens da desvinculação:
Leia maisUniversidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Arquivos em C
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação Arquivos em C 1 Material preparado pela profa Silvana Maria Affonso de Lara 2º semestre de 2010 ROTEIRO DA AULA Arquivos
Leia maisStructs, Ponteiros e Arquivos. Prof. Maurício Dias
Structs, Ponteiros e Arquivos Prof. Maurício Dias Registros e structs Um registro (= record) é uma coleção de várias variáveis, possivelmente de tipos diferentes. Na linguagem C, registros são conhecidos
Leia maisESTRUTURAS 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 maisAula 24 Ponteiros, vetores e structs
Programação Aula 24 Ponteiros, vetores e structs Prof. Laura Silva de Assis Engenharia de Computação 2 o Período CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca UnED Petrópolis
Leia maisProgramaçã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 maisEPs 1 e 2. EP2: veja. EP1: veja
1 EPs 1 e 2 EP2: veja http://www.ime.usp.br/~fabricio/ep2/ep2.pdf EP1: veja http://www.ime.usp.br/~yoshi/2006ii/mac122a/eps/ep1/wc.pdf http://www.ime.usp.br/~pf/cweb/ http://www.ime.usp.br/~pf/algoritmos/apend/util.html
Leia maisESTRUTURAS 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 maisINF 1007 P2 23/10/10 Nome: Instruções:
Instruções: 1. Esta prova deverá ser resolvida em até 90 minutos (1 hora e 30 minutos). Todas as questões deverão ter suas soluções implementadas em C, compiladas e testadas. Ao final da prova, os arquivos
Leia maisProgramação II. Vetores e Alocação Dinâmica. Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Vetores e Alocação Dinâmica Bruno Feijó Dept. de Informática, PUC-Rio Vetores (arrays) Vetor: estrutura de dados definindo um conjunto enumerável Exemplo: v = vetor de inteiros com 10 elementos
Leia maisA linguagem C permite dois tipos de alocação de memória: Alocação estática e alocação dinâmica.
Alocação de Memória Todo programa precisa utilizar memória para ser executado. Quando um programa inicia sua execução, ele começa a solicitar memória ao sistema operacional, ou seja, faz a alocação de
Leia maisCCO 016 / COM 110 Fundamentos de Programação
CCO 016 / COM 110 Fundamentos de Programação Prof. Roberto Affonso da Costa Junior Universidade Federal de Itajubá AULA 12 Agregados Homogêneos Variáveis Indexadas matrizes Variáveis Indexadas bi dimensionais
Leia maisEstruturas de Dados. Profa. Juliana Pinheiro Campos
Estruturas de Dados Profa. Juliana Pinheiro Campos Vetores Forma mais simples de estruturar um conjunto de dados. Exemplo: int p[10]; // vetor de inteiros com 10 elementos Reserva de um espaço de memória
Leia maisProgramação para Computação 13ª Aula
Programação para Computação 13ª Aula Arquivos em C O sistema de E/S da linguagem C utiliza o conceito de streams e arquivos, como um nível de abstração entre o programador e o dispositivo utilizado. Uma
Leia maisLinguagem C. Armazenamento de Dados em Arquivos - Continuação
Linguagem C Armazenamento de Dados em Arquivos - Continuação Arquivos Binários Comandos para gravação e leitura de arquivos (revisão): FILE *arquivo; arquivo = fopen( nome, modo ); fwrite (&variavel, sizeof
Leia maisMó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 maisMC-102 Aula 24 Arquivos em C e Parâmetros do Programa
MC-102 Aula 24 Arquivos em C e Parâmetros do Programa Instituto de Computação Unicamp 3 de Novembro de 2016 Roteiro 1 Arquivos Introdução a Arquivos em C Nomes e Extensões Tipos de Arquivos Caminhos Absolutos
Leia mais