UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS

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

Download "UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS"

Transcrição

1 ESTUDO DE CASO I Uma das operações oferecidas pelos sistemas bancários para seus clientes é a emissão de extratos da conta corrente ou do cartão de crédito. Esses relatórios permitem que o cliente possa acompanhar tanto as movimentações realizadas em sua conta corrente quanto as transações realizadas por meio do cartão de crédito. TAREFA Desenvolver as funções CriaSubListaContaOrdenada e CriaSubListaFaturaOrdenada, necessárias para o funcionamento de um sistema de geração de extrato de conta corrente e cartão de crédito para o Banco TAD$. Estas funções devem ser desenvolvidas utilizando a linguagem de programação C, seguindo a estrutura do código fonte do anexo I, cujas funções estão descritas no anexo II. Vale a pena salientar que é permitida a criação de funções adicionais, desde que estas sejam chamadas dentro do escopo das funções CriaSubListaContaOrdenada ou CriaSubListaFaturaOrdenada. Além do envio do código fonte em C contendo a implementação das funções solicitadas, também deve ser enviado um texto descrevendo sucintamente (máximo de 2000 caracteres) quais as técnicas das disciplinas do primeiro ano do curso foram utilizadas neste estudo de caso. DESCRIÇÃO DO SISTEMA O Banco TAD$ oferece aos seus clientes, contas correntes identificadas pelo número da agência e pelo número da conta. Para cada titular de uma conta corrente é disponibilizado um cartão magnético identificado por um número, que pode ser utilizado para compras na função débito e crédito. Além da operação de compra no débito por meio do cartão magnético, movimentações da conta corrente podem ser realizadas nos terminais de atendimento do Banco TAD$ por meio das seguintes operações:

2 - saques: um determinado valor é sacado da conta de seu titular em qualquer caixa eletrônico do Banco TAD$; - depósitos: um determinado valor é depositado na conta de seu titular em qualquer caixa eletrônico do Banco TAD$; - transferências: um determinado valor é transferido de/para uma conta em qualquer caixa eletrônico do Banco TAD$ ou através da internet. Compras realizadas na função crédito, processadas independemente das movimentações realizadas na conta corrente, são lançadas apenas na fatura do cartão de crédito. Além da operação de compra, para o cartão de crédito é possível realizar a operação de pagamento da fatura. O pagamento da fatura não precisa ser realizado em uma única transação e no valor total da fatura (o valor a ser pago pode ser menor, igual ou maior que o valor da fatura, sendo que quando for maior o cliente fica com saldo positivo). Para o cartão de crédito considera-se que não há saldo anterior referente a compras realizadas ou pagamentos efetuados. O sistema apresenta ao usuário um menu principal contendo 3 opções: Emissão do Extrato da Conta Corrente, Emissão da Fatura do Cartão de Crédito e Sair. Selecionada a opção Emissão do Extrato da Conta Corrente, o sistema solicita ao usuário o período (data inicial e final) utilizado para delimitar as transações contidas no extrato a ser emitido e, posteriormente, gera o extrato. Selecionada a opção Emissão da Fatura do Cartão de Crédito, o sistema solicita ao usuário o período (data inicial e final) que serve para delimitar as transações contidas na fatura a ser emitida e, posteriormente, gera a fatura. Se a opção Sair for selecionada, o sistema é finalizado sem gerar informações. É importante salientar que o sistema assume que as datas do arquivo de entrada e as fornecidas pelo usuário estão corretas, uma vez que em um sistema bancário completo, esses dados seriam gerados por outros módulos. Exemplos de datas inválidas: 45/09/2009, 25/15/2201. Exemplo de datas válidas 20/02/2009, 01/05/1932, 28/11/2050. ENTRADA DE DADOS NO SISTEMA A entrada de dados para o sistema é realizada através de um arquivo texto com o nome entrada.txt dividido em duas partes. A primeira parte consiste de um

3 cabeçalho contendo os dados de uma determinada conta bancária (agência, número da conta, titular e saldo anterior) e o número do cartão de crédito que está associado a esta conta, como mostra a estrutura a seguir: <titular>;<agência>;<numero_conta>;<saldo_conta>;<número_cartao> A segunda parte do arquivo é composta por uma lista de transações realizadas na conta corrente (compras na função débito, saques, depósitos e transferências) ou no cartão de crédito (compras na função crédito e pagamentos da fatura), especificadas pelo seguinte formato: <data>;<horário>;<operação>;<valor> Alguns padrões foram adotados para os seguintes campos: 20/02/ :00. Para o campo <data> é utilizado o seguinte formato: dd/mm/aaaa. Ex: Para o campo <horário> é utilizado o seguinte formato: hh:mm. Ex: Para o item <operação> é escolhida uma dentre as seguintes operações descritas anteriormente: Compra_debito, Saque, Deposito, Transferencia, Compra_credito ou Pgto_fatura. Para o campo <valor> é utilizado um número real com duas casas decimais depois da vírgula, sendo que a vírgula é substituída por ponto. Ex: Atenção especial deve ser dada para as operações do tipo Transferencia. Para este tipo de operação, se um valor for precedido por um sinal positivo é considerado que a conta corrente recebeu uma transferência. No entanto, se o valor especificado for precedido por um sinal negativo é considerado que uma transferência foi realizada da conta. Ex: (cem reais entraram na conta), (cem reais saíram da conta). No anexo III há um exemplo de arquivo de entrada. SAÍDA DE DADOS DO SISTEMA A saída do sistema consiste na emissão dos relatórios descritos a seguir: Extrato da Conta Corrente: arquivo texto com o nome extratoconta.txt contendo os dados da conta corrente (agência, número da conta, titular), os dados das movimentações (data, hora, operação e valor) realizadas durante o período especificado pelo usuário, ordenadas crescentemente por data e horário, além do

4 saldo anterior e atual da conta. Qualquer valor monetário apresentado no extrato deve vir precedido de um sinal positivo ou de um sinal negativo de acordo com o tipo de operação realizada. Ou seja, valores monetários utilizados para as operações do tipo Compra_debito e Saque são precedidos de um sinal negativo. Valores monetários utilizados para a operação Deposito são precedidos de um sinal positivo. Para a operação de Transferencia é utilizado o sinal do valor lido do arquivo de entrada. Considerando os dados de entrada do anexo III, o anexo VI apresenta a saída correspondente considerando o período de 10/11/2008 a 12/01/2009. Fatura do Cartão de Crédito: arquivo texto com o nome faturacartao.txt contendo os dados do cartão de crédito (número do cartão, titular), os dados das transações realizadas (data, hora, operação e valor) durante o período especificado pelo usuário, ordenadas crescentemente por data e horário, o valor total das compras realizadas no crédito, o valor total de pagamentos realizados e o saldo total da fatura. Os valores monetários apresentados na fatura do cartão de crédito também são precedidos de um sinal positivo ou negativo, onde valores utilizados para a operação Compra_credito são precedidos de um sinal negativo e valores utilizados para a operação Pgto_fatura são precedidos de um sinal positivo. Considerando os dados de entrada do anexo III, o anexo V apresenta a saída correspondente, considerando o período de 01/01/2009 a 20/02/2009.

5 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> ANEXO I Código Fonte #define TAM_STRING 100 typedef struct Data int idia; int imes; int iano; stdata; typedef struct Horario int ihora; int iminuto; sthorario; typedef struct Conta char ctitular[tam_string]; char cagencia[tam_string]; char cnumconta[tam_string]; float fsaldoanterior; float fsaldoatual; int inumcartao; float ftotalcomprascartao; float ftotalpagtoscartao; float ftotalcartao; stconta; typedef struct Transacao float fvalor; stdata sdata; int ioperacao; sthorario shorario; struct Transacao *prproximo; sttransacao; typedef struct Lista sttransacao *prinicio; sttransacao *prfim; stlista; char* OPERACOES[] = "Compra_debito","Saque","Deposito","Transferencia","Compra_credito","Pgto_fatura"; void LerCabecalho(stConta *pconta, char pscabecalho[]) strcpy(pconta->ctitular,strtok(pscabecalho,";")); strcpy(pconta->cagencia,strtok(null,";")); strcpy(pconta->cnumconta,strtok(null,";")); sscanf(strtok(null,";"),"%f",&pconta->fsaldoanterior); sscanf(strtok(null,";"),"%d",&pconta->inumcartao); int RetornaOperacao(char psoperacao[]) int iindex=0;

6 for (iindex=0; iindex<6; iindex++) if(!strcmp(psoperacao,operacoes[iindex])) return iindex; return -1; void PreencheTransacao(stTransacao *ptransacao, char pstransacao[]) ptransacao->prproximo = NULL; ptransacao->fvalor = 0.0f; sscanf(strtok(pstransacao,";"),"%d/%d/%d/",&ptransacao->sdata.idia,&ptransacao->sdata.imes, &ptransacao->sdata.iano); sscanf(strtok(null,";"),"%d:%d",&ptransacao->shorario.ihora,&ptransacao->shorario.iminuto); ptransacao->ioperacao = RetornaOperacao(strtok(NULL,";")); sscanf(strtok(null,";"),"%f",&ptransacao->fvalor); if(ptransacao->ioperacao == 0 ptransacao->ioperacao == 1 ptransacao->ioperacao == 4) ptransacao->fvalor *= -1; void InsereTransacao(stLista *plista, sttransacao *ptransacao) int iindex=0; int iposicao = 0; sttransacao *temp = NULL; if (!plista) return; if (!plista->prinicio) plista->prinicio = ptransacao; plista->prfim = ptransacao; return; plista->prfim->prproximo = ptransacao; plista->prfim = ptransacao; void LerArquivo(stLista *plistaconta, stlista *plistacartao, stconta *pconta, char psnomearquivo[]) FILE *prarquivoentrada = NULL; char slinha[tam_string]; sttransacao *prtransacao = NULL; plistaconta->prinicio = NULL; plistaconta->prfim = NULL; plistacartao->prinicio = NULL; plistacartao->prfim = NULL;

7 pconta->fsaldoanterior = 0.0f; pconta->fsaldoatual = 0.0f; pconta->inumcartao = 0; pconta->ftotalcomprascartao = 0.0f; pconta->ftotalpagtoscartao = 0.0f; pconta->ftotalcartao = 0.0f; prarquivoentrada = fopen(psnomearquivo,"r"); if (!prarquivoentrada) printf("nao foi possivel abrir o arquivo de entrada"); return; fgets(slinha,tam_string,prarquivoentrada); LerCabecalho(pConta,sLinha); while (!feof(prarquivoentrada)) fgets(slinha,tam_string,prarquivoentrada); if (slinha[0]=='\n') continue; prtransacao = (sttransacao*)malloc(sizeof(sttransacao)); PreencheTransacao(prTransacao,sLinha); if (prtransacao->ioperacao < 4) InsereTransacao(pListaConta,prTransacao); InsereTransacao(pListaCartao,prTransacao); fclose(prarquivoentrada); stlista* CriaSubListaContaOrdenada(stLista* plistaconta, stconta *pconta, stdata pdatainicial, stdata pdatafinal) stlista* prsublista = NULL; //Implemente aqui return prsublista; stlista* CriaSubListaFaturaOrdenada(stLista* plistacartao, stconta *pconta, stdata pdatainicial, stdata pdatafinal) stlista* prsublista = NULL; //Implemente aqui return prsublista;

8 void LiberaMemoriaTransacoes(stLista *plista) sttransacao *temp = NULL; if (!plista!plista->prinicio) return; while (plista->prinicio!= NULL) temp = plista->prinicio->prproximo; free(plista->prinicio); plista->prinicio = temp; plista->prinicio = NULL; plista->prfim = NULL; void FormataValorMonetario(char *psvalor, float pvalor) if(pvalor >= 0) sprintf(psvalor, "+%0.2f", pvalor); sprintf(psvalor, "%0.2f", pvalor); void FormataData(char *psdata, stdata pdata) char ctmpdia[3]; char ctmpmes[3]; if(pdata.idia < 10) sprintf(ctmpdia, "0%d", pdata.idia); sprintf(ctmpdia, "%d", pdata.idia); if(pdata.imes < 10) sprintf(ctmpmes, "0%d", pdata.imes); sprintf(ctmpmes, "%d", pdata.imes); sprintf(psdata, "%s/%s/%d", ctmpdia, ctmpmes, pdata.iano); void FormataHorario(char *pshorario, sthorario phorario) char ctmphora[3]; char ctmpmin[3]; if(phorario.ihora < 10) sprintf(ctmphora, "0%d", phorario.ihora);

9 sprintf(ctmphora, "%d", phorario.ihora); if(phorario.iminuto < 10) sprintf(ctmpmin, "0%d", phorario.iminuto); sprintf(ctmpmin, "%d", phorario.iminuto); sprintf(pshorario, "%s:%s", ctmphora, ctmpmin); void ImprimeExtrato(stConta pconta, stlista *plista) char strvalor[tam_string]; char strdata[tam_string]; char strhorario[tam_string]; FILE *prarquivosaida = NULL; prarquivosaida = fopen("extratoconta.txt","w"); if (!prarquivosaida) printf("nao foi possivel abrir o arquivo de saída"); return; fputs("\n ================================================\n", prarquivosaida); fputs("\n Banco TAD$\n", prarquivosaida); fputs("\n Extrato de Conta Corrente\n\n", prarquivosaida); fputs(" Agencia: ", prarquivosaida); fputs(pconta.cagencia, prarquivosaida); fputs("\n",prarquivosaida); fputs(" Conta Corrente: ", prarquivosaida); fputs(pconta.cnumconta, prarquivosaida); fputs("\n",prarquivosaida); fputs(" Titular: ", prarquivosaida); fputs(pconta.ctitular, prarquivosaida); fputs("\n \n\n", prarquivosaida); fputs("\n\t\t\tsaldo Anterior: ", prarquivosaida); FormataValorMonetario(strValor, pconta.fsaldoanterior); fputs(strvalor, prarquivosaida); fputs("\n\n Data\t Horario\t Operacao\t Valor\n\n", prarquivosaida); sttransacao *temp = NULL; if(!plista!plista->prinicio) return; temp = plista->prinicio; while(temp!=plista->prfim) FormataValorMonetario(strValor, temp->fvalor);

10 FormataData(strData, temp->sdata); FormataHorario(strHorario, temp->shorario); if(temp->ioperacao == 1) // Saque: adiciona mais uma tabulação antes do valor fprintf(prarquivosaida, " %s \t %s \t %s \t\t %s\n", strdata, strhorario, OPERACOES[temp->iOperacao], strvalor); fprintf(prarquivosaida, " %s \t %s \t %s \t %s\n", strdata, strhorario, OPERACOES[temp->iOperacao], strvalor); temp = temp->prproximo; FormataValorMonetario(strValor, temp->fvalor); FormataData(strData, temp->sdata); FormataHorario(strHorario, temp->shorario); fprintf(prarquivosaida, " %s \t %s \t %s \t %s\n", strdata, strhorario, OPERACOES[temp->iOperacao], strvalor); FormataValorMonetario(strValor, pconta.fsaldoatual); fputs("\n\t\t\tsaldo Atual: ", prarquivosaida); fputs(strvalor, prarquivosaida); fclose(prarquivosaida); void ImprimeFatura(stConta pconta, stlista *plista) char strvalor[tam_string]; char strdata[tam_string]; char strhorario[tam_string]; FILE *prarquivosaida = NULL; prarquivosaida = fopen("faturacartao.txt","w"); if (!prarquivosaida) printf("nao foi possivel abrir o arquivo de saída"); return; fputs("\n ================================================\n", prarquivosaida); fputs("\n Banco TAD$\n", prarquivosaida); fputs("\n Fatura do Cartao de Credito\n\n", prarquivosaida); fputs(" Nro. do Cartao: ", prarquivosaida); fprintf(prarquivosaida, "%i\n", pconta.inumcartao); fputs(" Titular: ", prarquivosaida); fputs(pconta.ctitular, prarquivosaida); fputs("\n \n\n", prarquivosaida); fputs("\n Data\t Horario\t Operacao\t Valor\n\n", prarquivosaida); sttransacao *temp = NULL; if(!plista!plista->prinicio) return; temp = plista->prinicio; while(temp!=plista->prfim) FormataValorMonetario(strValor, temp->fvalor);

11 FormataData(strData, temp->sdata); FormataHorario(strHorario, temp->shorario); if(temp->ioperacao == 5) fprintf(prarquivosaida, " %s \t %s \t %s \t\t %s\n", strdata, strhorario, OPERACOES[temp->iOperacao], strvalor); fprintf(prarquivosaida, " %s \t %s \t %s \t %s\n", strdata, strhorario, OPERACOES[temp->iOperacao], strvalor); temp = temp->prproximo; FormataValorMonetario(strValor, temp->fvalor); FormataData(strData, temp->sdata); FormataHorario(strHorario, temp->shorario); if(temp->ioperacao == 5) fprintf(prarquivosaida, " %s \t %s \t %s \t\t %s\n", strdata, strhorario, OPERACOES[temp->iOperacao], strvalor); fprintf(prarquivosaida, " %s \t %s \t %s \t %s\n", strdata, strhorario, OPERACOES[temp->iOperacao], strvalor); fputs("\n\t\t\ttotal de Compras: ", prarquivosaida); FormataValorMonetario(strValor, pconta.ftotalcomprascartao); fputs(strvalor, prarquivosaida); fputs("\n\t\t\ttotal de Pagamentos: ", prarquivosaida); FormataValorMonetario(strValor, pconta.ftotalpagtoscartao); fputs(strvalor, prarquivosaida); fputs("\n\t\t\ttotal da Fatura: ", prarquivosaida); FormataValorMonetario(strValor, pconta.ftotalcartao); fputs(strvalor, prarquivosaida); fclose(prarquivosaida); void MenuPrincipal() system("cls"); printf("\n \n"); printf(" \n"); printf(" UNIVERSIDADE DO TOCANTINS \n"); printf(" Banco TAD$ \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" <1> Extrato da Conta Corrente \n"); printf(" <2> Fatura do Cartao de Credito \n"); printf(" <3> Sair \n"); printf(" \n"); printf(" \n\n"); printf("\t\topcao: "); void TelaPeriodo(char* pstiporelatorio, stdata *pdatainicio, stdata *pdatafinal) system("cls"); printf("\n \n"); printf(" \n"); printf(" UNIVERSIDADE DO TOCANTINS \n");

12 printf(" Banco TAD$ \n"); printf(" \n"); printf(" \n"); printf(" \n"); printf(" %s - Periodo \n",pstiporelatorio); printf(" \n"); printf(" \n\n"); printf(" Entre com a data inicial: "); scanf("%d/%d/%d", &pdatainicio->idia, &pdatainicio->imes, &pdatainicio->iano); printf(" Entre com a data final: "); scanf("%d/%d/%d", &pdatafinal->idia, &pdatafinal->imes, &pdatafinal->iano); int main(void) stdata sdatainicio; stdata sdatafinal; stconta sconta; stlista *slistaconta = (stlista*)malloc(sizeof(stlista)); stlista *slistacartao = (stlista*)malloc(sizeof(stlista)); stlista *ssublista = NULL; char opcao; LerArquivo(sListaConta, slistacartao, &sconta, "Entrada.txt"); MenuPrincipal(); fflush(stdin); opcao=getchar(); switch(opcao) case '1': case '2': system("cls"); TelaPeriodo("Extrato da Conta Corrente ",&sdatainicio, &sdatafinal); ssublista = CriaSubListaContaOrdenada(sListaConta, &sconta, sdatainicio, sdatafinal); ImprimeExtrato(sConta, ssublista); system("cls"); printf("\n\n\t\textrato da conta corrente gerado com sucesso"); getch(); break; system("cls"); TelaPeriodo("Fatura do Cartao de Credito",&sDataInicio, &sdatafinal); ssublista = CriaSubListaFaturaOrdenada(sListaCartao, &sconta, sdatainicio, sdatafinal); ImprimeFatura(sConta, ssublista); system("cls"); printf("\n\n\t\tfatura do cartao de credito gerado com sucesso"); getch(); break; LiberaMemoriaTransacoes(sListaConta); LiberaMemoriaTransacoes(sListaCartao); free(slistaconta); free(slistacartao); free(ssublista); return 0;

13 ANEXO II Descrição das Funções void LerCabecalho(stConta *pconta, char pscabecalho[]): esta função tem a finalidade de extrair os dados contidos na primeira linha do arquivo de entrada e atribuir esses dados para os campos contidos na estrutura stconta. int RetornaOperacao(char psoperacao[]): esta função tem o objetivo de receber uma String contendo uma das operações bancárias definidas pelo sistema e retornar um valor inteiro que corresponde ao código desta operação. void PreencheTransacao(stTransacao *ptransacao, char pstransacao[]): esta função recebe como parâmetros uma String contendo os dados de uma transação (data, horário, operação e valor) separados por ponto-e-vírgula, extrai estas informações e preenche os campos da estrutura sttransação também passada como parâmetro. void InsereTransacao(stLista *plista, sttransacao *ptransacao): esta função insere uma determinada transação no final da lista de transações passada como parâmetro. void LerArquivo(stLista *plistaconta, stlista *plistacartao, stconta *pconta, char psnomearquivo[]): esta função realiza a leitura dos dados do arquivo de entrada (cabeçalho e lista de transações) e chama as funções necessárias para inserir tanto os dados do cabeçalho do arquivo na estrutura stconta, quanto as transações em suas respectivas listas (plistaconta e plistacartao), conforme o código da operação de cada transação. stlista* CriaSubListaContaOrdenada(stLista* plistaconta, stconta *pconta, stdata pdatainicial, stdata pdatafinal): esta função deverá retornar uma sublista ordenada de transações, criada a partir da lista plistaconta, passada como parâmetro, contendo somente as transações da conta corrente lidas do arquivo de entrada. O conjunto de transações da sublista a ser retornada deverá ser delimitado pela data inicial e final escolhida pelo usuário. Além de criar a sublista, a função deve calcular o saldo anterior e atual da conta. O saldo anterior corresponde ao saldo da conta lido do cabeçalho do arquivo de entrada, levando em consideração todas as transações ocorridas até um dia antes da data inicial especificada pelo usuário. O saldo atual corresponde ao valor do saldo anterior calculado descontando-se todas as transações ocorridas no período escolhido pelo usuário. Os valores calculados para o saldo anterior e o saldo atual devem ser atribuídos para os respectivos campos da estrutura stconta. stlista* CriaSubListaFaturaOrdenada(stLista* plistacartao, stconta *pconta, stdata pdatainicial, stdata pdatafinal): esta função deverá retornar uma sublista ordenada de transações, criada a partir da lista plistacartao, passada como parâmetro, contendo somente as transações do cartão de crédito lidas do arquivo de entrada. O conjunto de transações da sublista a ser retornada deverá ser delimitado pela data inicial e final escolhida pelo usuário. Além de criar a sublista, a função deve

14 calcular o total de compras do cartão, o total de pagamentos realizados e o total da fatura, de acordo com o período escolhido pelo usuário. Os valores calculados para o total de compras do cartão, o total de pagamentos realizados e o total da fatura devem ser atribuídos para os respectivos campos da estrutura stconta. void LiberaMemoriaTransacoes(stLista *plista): esta função recebe um ponteiro para uma lista e libera a memória de todas as transações que fazem parte da mesma. void FormataValorMonetario(char *psvalor, float pvalor): esta função recebe um valor monetário do tipo float e o devolve no formato especificado através da String passada como parâmetro. void FormataData(char *psdata, stdata pdata): esta função recebe uma estrutura do tipo stdata e devolve data no formato especificado através da String passada como parâmetro. void FormataHorario(char *pshorario, sthorario phorario): esta função recebe uma estrutura do tipo sthorario e devolve o horário no formato especificado através da String passada como parâmetro. void ImprimeExtrato(stConta pconta, stlista *plista): esta função gera o arquivo de saída (extratoconta.txt) contendo as informações do extrato da conta. É importante salientar que para o extrato ser emitido de forma correta, a lista recebida por parâmetro deve possuir as transações ordenadas crescentemente por data e horário. void ImprimeFatura(stConta pconta, stlista *plista): esta função gera o arquivo de saída (faturacartao.txt) contendo as informações da fatura do cartão de crédito. É Importante salientar que para a fatura ser emitida de forma correta, a lista recebida por parâmetro deve possuir as transações ordenadas crescentemente por data e horário. void MenuPrincipal(): esta função imprime na tela o menu de opções apresentado ao usuário. void TelaPeriodo(char* pstiporelatorio, stdata *pdatainicio, stdata *pdatafinal): esta função realiza a leitura do período (data inicial e final) que será utilizado para filtrar quais as transações estarão contidas no extrato da conta corrente ou na fatura do cartão de crédito int main(void): função principal do programa que realiza as chamadas necessárias para a execução do sistema. OBS: Fica a critério de cada aluno pesquisar as funções da linguagem de programação C utilizadas no código fonte que não foram dadas em aula.

15 ANEXO III entrada.txt Maria Cristina Ribeiro;123-4;5678-9; ; /01/2009;10:30;Deposito; /01/2009;15:30;Compra_debito; /11/2008;09:00;Compra_credito; /02/2009;11:10;Transferencia; /12/2008;13:20;Pgto_fatura; /12/2008;14:25;Compra_credito; /12/2008;08:00;Saque; /02/2009;11:20;Pgto_fatura; /01/2009;08:00;Saque; /10/2008;12:04;Compra_debito; /01/2009;18:30;Compra_debito; /01/2009;18:25;Compra_credito; /02/2009;09:55;Compra_credito; /11/2008;12:40;Compra_debito; /01/2009;13:40;Deposito; /01/2009;10:20;Pgto_fatura; /01/2009;16:30;Transferencia; /01/2009;20:35;Transferencia; /11/2008;09:10;Compra_credito; /12/2008;12:40;Compra_debito; /01/2009;11:45;Deposito; /12/2008;10:30;Deposito; /12/2008;14:25;Compra_credito; /10/2008;09:30;Compra_debito; /02/2009;11:55;Compra_credito; /12/2008;11:30;Compra_debito; /02/2009;10:30;Deposito; /01/2009;10:25;Compra_credito; /11/2008;11:20;Pgto_fatura; /01/2009;10:55;Compra_credito; /02/2009;17:20;Pgto_fatura;400.00

16 ANEXO IV extratoconta.txt ==================================================== Banco TAD$ Extrato de Conta Corrente Agencia: Conta Corrente: Titutlar: Maria Cristina Ribeiro Saldo Anterior: Data Horario Operacao Valor 15/11/ :40 Compra_debito /12/ :30 Deposito /12/ :30 Compra_debito /12/ :40 Compra_debito /12/ :00 Saque /01/ :30 Deposito /01/ :35 Transferencia /01/ :30 Compra_debito /01/ :30 Compra_debito /01/ :30 Transferencia Saldo Atual: ====================================================

17 ANEXO V faturacartao.txt ==================================================== Banco TAD$ Fatura do Cartao de Credito Nro. do Cartão: Titular: Maria Cristina Ribeiro Data Horario Operacao Valor 02/01/ :25 Compra_credito /01/ :20 Pgto_fatura /01/ :55 Compra_credito /01/ :25 Compra_credito /02/ :20 Pgto_fatura /02/ :55 Compra_credito /02/ :55 Compra_credito /02/ :20 Pgto_fatura Total de Compras: Total de Pagamentos: Total da Fatura: ====================================================

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1

INF1007: Programação 2 9 Tipos Abstratos de Dados. (c) Dept. Informática - PUC-Rio 1 INF1007: Programação 2 9 Tipos Abstratos de Dados (c) Dept. Informática - PUC-Rio 1 Tópicos Módulos e compilação em separado Tipo abstrato de dados Exemplo 1: TAD Ponto Exemplo 2: TAD Círculo Exemplo 3:

Leia mais

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS ESTUDO DE CASO I

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS ESTUDO DE CASO I ESTUDO DE CASO I Um sistema de gestão patrimonial permite relacionar todos os bens de uma organização a fim de garantir sua integridade patrimonial. Esse tipo de sistema tem como finalidade automatizar

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

Listas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 10 Algoritmos e Estruturas de Dados I

Listas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br. BCC202 Aula 10 Algoritmos e Estruturas de Dados I Listas (Parte 2) Túlio Toffolo tulio@toffolo.com.br www.toffolo.com.br BCC202 Aula 10 Algoritmos e Estruturas de Dados I Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento

Leia mais

Tipo Abstrato de Dados

Tipo Abstrato de Dados Tipo Abstrato de Dados David Menotti Algoritmos e Estruturas de Dados II DInf - UFPR Qual a diferença entre um algoritmo e um programa? Algoritmos e Estruturas de Dados Algoritmo: Sequência de ações executáveis

Leia mais

INF 1620 P1-13/09/02 Questão 1 Nome:

INF 1620 P1-13/09/02 Questão 1 Nome: INF 1620 P1-13/09/02 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 mais

Prova 2 - Computação

Prova 2 - Computação Prova 2 - Computação A prova consiste na elaboração de um programa utilizando a linguagem C. Seu programa deve estar correto (sintática e semanticamente), além de organizado (nomes de variáveis, identação

Leia mais

Método de ordenação - objetivos:

Método de ordenação - objetivos: Método de ordenação - objetivos: Corresponde ao processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. Facilitar a recuperação posterior de itens do conjunto ordenado. São

Leia mais

INF 1620 P2-01/11/03 Questão 1 Nome:

INF 1620 P2-01/11/03 Questão 1 Nome: INF 1620 P2-01/11/03 Questão 1 Considere a implementação de uma lista encadeada para armazenar as notas dos alunos de uma turma dada pelo tipo abaixo: struct lista { char nome[81]; int mat; float p1, p2,

Leia mais

char* prefixo (char* str, int n);

char* prefixo (char* str, int n); Departamento de Informática PUC-Rio INF1620 - Estruturas de Dados Segunda Lista de Exercícios 2005.1 1. Implemente uma função que receba uma string e um número inteiro n como parâmetros, e retorne uma

Leia mais

Computação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos

Computação I - C Prova /10/ Profs. Adriano Cruz e Valeria Bastos Computação I - C Prova 2 2016-2 14/10/2016 - Profs. Adriano Cruz e Valeria Bastos Nome: DRE: Observação: Justifique todas as respostas dadas. Some nte serão aceitas respostas com justificativas. Questão

Leia mais

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

INF 1620 P3-02/07/02 Questão 1 Nome:

INF 1620 P3-02/07/02 Questão 1 Nome: INF 1620 P3-02/07/02 Questão 1 Considere um arquivo texto que contém os nomes e as notas dos alunos de uma disciplina. As informações de cada aluno ocupam duas linhas do arquivo: a primeira linha contém

Leia mais

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006)

Departamento de Informática PUC-Rio INF Estruturas de Dados Lista 2 Completa (Gerada em 8 de maio de 2006) Departamento de Informática PUC-Rio INF1620 - Estruturas de Dados Lista 2 Completa 2006.1 (Gerada em 8 de maio de 2006) 1. Considerando a estrutura struct Ponto { int x; int y; para representar um ponto

Leia mais

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C

Estruturas de Dados. Introdução Definição de Ponteiros Declaração de Ponteiros em C Manipulação de Ponteiros em C Estruturas de Dados Revisão de Ponteiros 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 e Arranjos

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

#include <stdio.h> #include <stdlib.h>

#include <stdio.h> #include <stdlib.h> ÁREA II CCEN / UFPE Disciplina: IF 165 Computação Eletrônica 3º Exercício Escolar 2015.1 Data: 07/07/ 2015 Nome legível do aluno:... Turma... Observações gerais: 1) Preencher os dados do cabeçalho do bloco

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

Computação Eletrônica. Aula 08 Estruturas de Dados. Prof: Luciano Barbosa. CIn.ufpe.br

Computação Eletrônica. Aula 08 Estruturas de Dados. Prof: Luciano Barbosa. CIn.ufpe.br Computação Eletrônica Aula 08 Estruturas de Dados Prof: Luciano Barbosa Tipos de Dados Primitivos vs Estruturados Tipos primitivos: reais (float, double), inteiros (int), caractere (char); Tipos estruturados:

Leia mais

INF 1620 P4 11/12/06 Questão 1 Nome:

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

Departamento de Informática - PUC-Rio INF 1005 Programação I P1 22/09/2010 Nota

Departamento de Informática - PUC-Rio INF 1005 Programação I P1 22/09/2010 Nota P1 22/09/2010 Matrícula: Turma: Questão 1) (3,5 pontos) O Índice de Desenvolvimento Humano (IDH) é uma medida do bemestar de uma população. Engloba três dimensões: educação (E), longevidade (L) e a riqueza

Leia mais

Linguagens de Programação

Linguagens de Programação Linguagens de Programação 128 13 129 Linguagens de Programação Uma linguagem de programação é um vocabulário e um conjunto de regras gramaticais usadas para escrever programas de computador. Esses programas

Leia mais

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica)

SCC 202 Algoritmos e Estruturas de Dados I. Pilhas (Stacks) (implementação dinâmica) SCC 202 Algoritmos e Estruturas de Dados I Pilhas (Stacks) (implementação dinâmica) Operações alocação encadeada dinâmica typedef struct elem{ tipo_info info; struct elem *lig; tipo_elem; typedef struct{

Leia mais

Lista de Exercícios para P1 INF1007 (Prog2) 15/04/2013. ATENÇÃO: O material a seguir não sofreu revisão e pode conter erros.

Lista de Exercícios para P1 INF1007 (Prog2) 15/04/2013. ATENÇÃO: O material a seguir não sofreu revisão e pode conter erros. EXERCÍCIO 1: Lista de Exercícios para P1 INF1007 (Prog2) 15/04/2013 ATENÇÃO: O material a seguir não sofreu revisão e pode conter erros. Considere as informações dos candidatos inscritos em um concurso.

Leia mais

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Prova - 14 de junho de 2017

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Prova - 14 de junho de 2017 Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Prova - 14 de junho de 2017 1. (30 Pontos) Bolas de futebol são muito fáceis de transportar, já que elas saem das fábricas vazias

Leia mais

Computação 2. Diego Addan Aula 3. Funções

Computação 2. Diego Addan Aula 3. Funções Computação 2 Aula 3 Funções Diego Addan diegoaddan@gmail.com Funções Função é um subprograma que auxilia o programa principal através da realização de uma determinada subtarefa. As funções são chamados

Leia mais

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010 Departamento de Informática - PUC-Rio INF 1007 Programação 2 P4 07/12/2010 Aluno: Matrícula: Turma: Instruções: 1) Escreva seu nome completo, matrícula e turma; 2) A prova deve ser completamente resolvida

Leia mais

INF 1007 Simulado P2 Nome: Instruções

INF 1007 Simulado P2 Nome: Instruções INF 1007 Simulado P2 Nome: Matrícula: Turma: Instruções 1. Tempo de prova: 1 hora e 30 minutos. 2. Entregue a solução de sua prova em um ÚNICO arquivo texto, com o nome Turma_Matricula_P2.txt (por exemplo

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

Estruturas de Dados Aula 15: Árvores 17/05/2011

Estruturas de Dados Aula 15: Árvores 17/05/2011 Estruturas de Dados Aula 15: Árvores 17/05/2011 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo

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

Configuração e Utilização de Boletos FAQ23

Configuração e Utilização de Boletos FAQ23 Configuração e Utilização de Boletos FAQ23 Através do sistema Futura Server é possível configurar e controlar a emissão de boletos bancários, Para isso é necessário realizar as seguintes configurações:

Leia mais

Como Configurar e Utilizar Boletos (Futura Server) FAQ23

Como Configurar e Utilizar Boletos (Futura Server) FAQ23 Como Configurar e Utilizar Boletos (Futura Server) FAQ23 Através do sistema Futura Server é possível configurar e controlar a emissão de boletos bancários, Para isso é necessário realizar as seguintes

Leia mais

Aula 12 Tipo Abstrato de Dados. Prof. Me. Sérgio Carlos Portari Jr UEMG Campus de Frutal

Aula 12 Tipo Abstrato de Dados. Prof. Me. Sérgio Carlos Portari Jr UEMG Campus de Frutal Aula 12 Tipo Abstrato de Dados Prof. Me. Sérgio Carlos Portari Jr UEMG Campus de Frutal Representação dos Dados Os dados podem estar representados (estruturados) de diferentes maneiras Normalmente, a escolha

Leia mais

TÉCNICAS DE PROGRAMAÇÃO

TÉ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 mais

INF 1620 P2-14/10/05 Questão 1 Nome:

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

Introdução a Programação. Tipos Estruturados de Dados

Introdução a Programação. Tipos Estruturados de Dados Introdução a Programação Tipos Estruturados de Dados Tópicos da Aula Hoje aprenderemos a trabalhar com tipos de dados mais complexos Tipos Primitivos x Tipos Estruturados Conceito de Tipos Estruturados

Leia mais

INF 1620 P3-29/06/04 Questão 1 Nome:

INF 1620 P3-29/06/04 Questão 1 Nome: INF 1620 P3-29/06/04 Questão 1 Considere um arquivo texto que descreve um conjunto de retângulos e círculos. Cada linha do arquivo contém a descrição de uma figura. O primeiro caractere da linha indica

Leia mais

Linguagem de Programação

Linguagem de Programação Linguagem de Programação Funções para Manipulação de Arquivos Gil Eduardo de Andrade Introdução Na última aula foram apresentados e definidos: o conceito de arquivo e seus modos de abertura, o ponteiro

Leia mais

ECT1203 Linguagem de Programação

ECT1203 Linguagem de Programação Universidade Federal do Rio Grande do Norte Escola de Ciências e Tecnologia ECT1203 Linguagem de Programação Prof. Aquiles Burlamaqui Profa. Caroline Rocha Prof. Luiz Eduardo Leite Prof. Luciano Ferreira

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 08: Listas (Parte 1) ASN Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Material elaborado com base nos slides do Prof. Reinaldo Fortes (curso

Leia mais

Listas ligadas/listas encadeadas

Listas ligadas/listas encadeadas 1 Listas ligadas/listas encadeadas Leitura recomendada: http://www.ime.usp.br/~pf/algoritmos/aulas/lista.html 2 Processamento elementar de listas Definição mais restritiva (tipo de lista possivelmente

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

EPs 1 e 2. EP2: veja. EP1: veja

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

O que é um algoritmo? O que é um programa? Algoritmos. Programas. Aula 1 Tipo Abstrato de Dados

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

Leia mais

LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados

LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS. Estrutura de Dados LISTAS ENCADEADAS OU NÃO- SEQÜENCIAIS Listas Lineares Como visto anteriormente, as operações básicas para o nosso TAD Lista Linear são: FLVazia Vazia Retira Insere Imprime A implementação através de arrays

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

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função.

Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Lista de Exercícios de Algoritmos - 04 Para cada um dos exercícios abaixo, faça um programa (em laboratório) que teste a função. Funções e estruturas básicas 1. Faça uma função que recebe a idade de uma

Leia mais

Características da Linguagem C

Características da Linguagem C Características da Linguagem C Na aula passada, foi implementado o exemplo utilizado do reajuste salarial O resultado impresso pode ser visualizado da seguinte forma: Características da Linguagem C Introdução

Leia mais

Linguagem C Funções definidas pelo usuário. Lógica de Programação

Linguagem C Funções definidas pelo usuário. Lógica de Programação Linguagem C Funções definidas pelo usuário Lógica de Programação Caro(a) aluno(a), Trabalharemos agora com as funções criadas por vocês na Linguagem C. Bom trabalho!!! Funções C permite que o programador

Leia mais

INF 1620 P4-13/12/01 Questão 1 Nome:

INF 1620 P4-13/12/01 Questão 1 Nome: INF 1620 P4-13/12/01 Questão 1 (a) Escreva uma função em C, chamada somaprod, para calcular a soma e o produto de dois valores inteiros. Esta função deve ter o seguinte efeito: se tivermos duas variáveis

Leia mais

MAC-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 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 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 Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas

Leia mais

INF 1620 P4-06/12/02 Questão 1 Nome:

INF 1620 P4-06/12/02 Questão 1 Nome: INF 1620 P4-06/12/02 Questão 1 (a) Escreva uma função em C que receba como parâmetro um número inteiro não negativo e retorne, como resultado da função, o valor do seu fatorial. O cabeçalho desta função

Leia mais

INF 1620 P4-27/06/02 Questão 1 Nome:

INF 1620 P4-27/06/02 Questão 1 Nome: INF 1620 P4-27/06/02 Questão 1 Considere o tipo que representa uma grandeza vetorial (com três componentes) dado por: struct vetor { float x; float y; float z; }; typedef vetor Vetor; Pede-se: (a) Escreva

Leia mais

Arquivos em C. Material da Prof. Ana Eliza

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

Simulado de Linguagem de Programação Java

Simulado de Linguagem de Programação Java Simulado de Linguagem de Programação Java 1. Descreva o processo de criação de programas em Java, desde a criação do código-fonte até a obtenção do resultado esperado, por meio de sua execução. Cite as

Leia mais

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros.

1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros. Lista de exercícios: Grupo I - programa seqüênciais simples 1. Fazer um programa em C que pergunta um valor em metros e imprime o correspondente em decímetros, centímetros e milímetros. 2. Fazer um programa

Leia mais

1. Escreva um programa que imprima a ordem reversa de caracteres de uma string digitada pelo usuário. Ex: Entrada: Hello World. Saída:.

1. Escreva um programa que imprima a ordem reversa de caracteres de uma string digitada pelo usuário. Ex: Entrada: Hello World. Saída:. Primeira lista de exercícios v1.02 Linguagens de Programação e Aplicações SSC0300 Prof: Daniel Rodrigo Ferraz Bonetti 1. Escreva um programa que imprima a ordem reversa de caracteres de uma string digitada

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

Variáveis e Comandos de Atribuição

Variáveis e Comandos de Atribuição BCC 201 - Introdução à Programação Variáveis e Comandos de Atribuição Guillermo Cámara-Chávez UFOP 1/47 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c e s s a d o r > < d e c l

Leia mais

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 03: Tipos Abstratos de Dados (TADs) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes

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 Tipos Estruturados Tipo estrutura Definição de novos tipos Aninhamento de Estruturas Vetores de estruturas

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

BCC202 - Estrutura de Dados I

BCC202 - Estrutura de Dados I BCC202 - Estrutura de Dados I Aula 09: Listas (Parte 2) Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Ciência da Computação, DECOM Website: www.decom.ufop.br/reifortes Email:

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

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

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

SimplesSMS - Manual do Administrador/Revenda1

SimplesSMS - Manual do Administrador/Revenda1 1 Acessando o Sistema Acesse o site http://sistema.simplessms.com Conforme tela abaixo: Informe em usuário o seu telefone celular e em senha, a senha que você recebeu por SMS. Caso você não se lembre da

Leia mais

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática

INF1005 Programação I. Pontifícia Universidade Católica Departamento de Informática INF1005 Programação I Pontifícia Universidade Católica Departamento de Informática 1 INF1005 Exercício da Editora Pontifícia Universidade Católica Departamento de Informática 2 O Problema Uma editora fornece

Leia mais

Métodos Computacionais. Fila

Métodos Computacionais. Fila Métodos Computacionais Fila Definição de Fila Fila é uma estrutura de dados dinâmica onde: Inserção de elementos se dá no final e a remoção no início O primeiro elemento que entra é o primeiro que sai

Leia mais

ARQUIVOS DE DADOS EM C: UMA INTRODUÇÃO

ARQUIVOS DE DADOS EM C: UMA INTRODUÇÃO ARQUIVOS DE DADOS EM C: UMA INTRODUÇÃO 1 2 3 4 // Programa p32.c // com alocacao estatica #include #include int main(int args, char * arg[]) int i,j,nl,nc; int ma[10][10], mb[10][10],

Leia mais

Linguagem C - Introdu ção

Linguagem C - Introdu ção Linguagem C - Introdu ção José Gustavo de Souza Paiva Introdução Linguagens de Programa ção Softwares que permitem o desenvolvimento de programas Existem várias linguagens de programação, cada uma com

Leia mais

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais

UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06. Funções, variáveis, parâmetros formais UNIVERSIDADE DO VALE DO RIO DOS SINOS - UNISINOS CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS - CENTRO 06 Disciplina: Linguagem de Programação C Profª Viviane Todt Diverio Funções, variáveis, parâmetros formais

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

Conteúdo programático

Conteúdo programático Introdução à Linguagem C Conteúdo programático Introdução à Linguagem C Estrutura de Programas Variáveis, Constantes Operadores, Entrada e Saída de Dados Estruturas de Desvio Estrutura de Múltipla Escolha

Leia mais

Listas Encadeadas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR

Listas Encadeadas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Listas Encadeadas David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento guarda quem é o próximo Elementos não

Leia mais

Laboratório de Introdução à Ciência da Computação I

Laboratório de Introdução à Ciência da Computação I Laboratório de Introdução à Ciência da Computação I Aula 13 Arquivos Professores: Jó Ueyama 10/06/10 1 Stream de texto Arquivo: tipo texto Um arquivo texto é uma sequência de linhas, onde cada linha contém

Leia mais

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas)

Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 em PDF via Moodle: Escolha apenas 5 exercícios para entrega Exercício 01 (Pilhas) Introdução à Computação II (Noturno) BCC Unesp Rio Claro/SP 2015 Lista Obrigatória 02 - Prof. Rafael Oliveira (Deve ser entregue em PDF via Moodle: Escolha apenas 5 exercícios para entrega) Exercício 01

Leia mais

Exercícios Aula Prática XIV

Exercícios Aula Prática XIV Aula Prática XIV 33) Construa o código fonte de uma função em C que receba um número inteiro positivo, o qual representa a posição de um determinado termo na sequência de Fibonacci, a função deve retornar

Leia mais

Programação Estruturada

Programação Estruturada Programação Estruturada Introdução à linguagem C Professores Emílio Francesquini e Carla Negri Lintzmayer 2018.Q3 Centro de Matemática, Computação e Cognição Universidade Federal do ABC Programação estruturada

Leia mais

INF 1620 P1-16/09/06 Questão 1 Nome:

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

Linguagem de Programação C

Linguagem de Programação C ICMC USP Linguagem de Programação C Aula: Funções em C Prof Alneu de Andrade Lopes MODULARIZAÇÃO Um problema complexo é melhor abordado se for dividido primeiramente em vários subproblemas MODULARIZAÇÃO

Leia mais

Aula 26: Estruturas heterogêneas

Aula 26: Estruturas heterogêneas Aula 26: Estruturas heterogêneas Introdução a Programação Túlio Toffolo & Puca Huachi http://www.toffolo.com.br BCC201 2018/2 Departamento de Computação UFOP Aulas anteriores Memória Ponteiro Utilização

Leia mais

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas

Tipos Básicos. Operadores de Incremento e Decremento. Operador Sizeof. Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas 03/03/2010 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

/*(Atenção: Em se tratando de uma lista estaticamente alocada, temos utilizado a estratégia de passa o tamanho máximo do vetor.)*/

/*(Atenção: Em se tratando de uma lista estaticamente alocada, temos utilizado a estratégia de passa o tamanho máximo do vetor.)*/ ========================TDA.H #include "info.h" #define TRUE 1 #define FALSE 0 #define INI_LISTA 1 #define OK 1; #define NOK -1; typedef struct nolista{ info dados; struct nolista *prox; struct nolista

Leia mais

INF 1620 Estruturas de Dados Semestre Segundo Trabalho: Jogo de Caça-Palavras

INF 1620 Estruturas de Dados Semestre Segundo Trabalho: Jogo de Caça-Palavras INF 1620 Estruturas de Dados Semestre 08.2 Segundo Trabalho: Jogo de Caça-Palavras O jogo de caça-palavras é um passatempo que consiste em descobrir palavras escondidas entre um conjunto de letras espalhadas

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 lmarti@ic.uff.br - http://lmarti.com Tópicos Principais Módulos e Compilação em separado

Leia mais

Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011

Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011 Estruturas de Dados Aula 10: Listas (parte 2) 19/04/2011 Fontes Bibliográficas Livros: Projeto de Algoritmos (Nivio Ziviani): Capítulo 3; Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo

Leia mais

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char?

Estruturas de Dados Aula 2: Estruturas Estáticas. Tipos Básicos. Quantos valores distintos podemos representar com o tipo char? Estruturas de Dados Aula 2: Estruturas Estáticas Tipos Básicos Quantos valores distintos podemos representar com o tipo char? 1 Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa o

Leia mais

Tipos Abstratos de Dados

Tipos Abstratos de Dados Tipos Abstratos de Dados Prof. Túlio Toffolo http://www.toffolo.com.br BCC202 Aula 03 Algoritmos e Estruturas de Dados I Qual a diferença entre um algoritmo e um programa? Algoritmos e Estruturas de Dados

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

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011 Tipos Básicos Quantos valores distintos podemos representar com o tipo char? Operadores de Incremento e Decremento ++ e -- Incrementa ou decrementa

Leia mais

Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos

Objetivo. Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos Objetivo Compreender a definição e dominar a implementação de ponteiros em C. Dominar a manipulação de arquivos Motivação para a utilização de ponteiros O que precisamos para fazer para que uma função

Leia mais

Linguagem C. Prof. Alessandra Bussador

Linguagem C. Prof. Alessandra Bussador Linguagem C Prof. Alessandra Bussador Funções: Chamada por Valor O valor de um argumento é copiado para o parâmetro formal da função,portanto as alterações no processamento não alteram as variáveis. int

Leia mais

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída BCC 201 - Introdução à Programação Variáveis, Comandos de Atribuição e Comando de Entrada e Saída Guillermo Cámara-Chávez UFOP 1/1 Estrutura Básica de um programa C I < d i r e t i v a s do pré p r o c

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

UNIVERSIDADE DA BEIRA INTERIOR

UNIVERSIDADE DA BEIRA INTERIOR UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for

Leia mais

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