p-fólio -- INSTRUÇÕES -- Programação U.C de fevereiro de 2016

Documentos relacionados
( ) LEIA ATENTAMENTE as instruções para a resolução do p-fólio: 1. O tempo de resolução do p-fólio é de uma hora e trinta minutos.

( ) LEIA ATENTAMENTE as instruções para a resolução do p-fólio: 1. O tempo de resolução do p-fólio é de uma hora e trinta minutos.

U.C Programação. 07 de Fevereiro de INSTRUÇÕES --

U.C Programação. 20 de Julho de INSTRUÇÕES --

-- INSTRUÇÕES -- Introdução à Programação U.C de janeiro de 2019

U.C. (21093) Programação por Objetos. XX de Julho de INSTRUÇÕES --

U.C. (21093) Programação por Objetos. XX de Julho de INSTRUÇÕES --

U.C Matemática Aplicada à Gestão I. 08 de Fevereiro de 2013

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

U.C Matemática Aplicada à Gestão I. P-fólio modelo

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

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

INF 1620 P1-14/04/07 Questão 1 Nome:

INF 1620 P1-18/09/04 Questão 1 Nome:

Computação 2. Aula 9. Diego Addan Arquivos

Leitura de Arquivos. Prof. Fabrício Olivetti de França

INF 1620 P4-01/07/08 Questão 1 Nome:

INF 1620 P1-17/09/05 Questão 1 Nome:

Linguagem C Ficheiros Compilação Separada

U.C. (21093) Programação por Objetos. XX de Julho de INSTRUÇÕES --

Fundamentos de Programação 1

Aluno: Valor Nota Q1 3.0 Q2 2.5 Q3 2.5 Q4 2.0 Total 10.0

Aula 26: Arquivos de texto

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 26 de Julho de 2012 INSTRUÇÕES

TÉCNICAS DE PROGRAMAÇÃO

O que é um apontador em C (type pointer in C)?

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

- INSTRUÇES - U.C Investigação Operacional. 12 de Junho de 2012

INF 1620 P3-21/06/08 Questão 1 Nome:

Aula 14 Oficina de Programação Tópicos Especiais em C: Arquivos. Profa. Elaine Faria UFU

SIMULADO PROVA. Questões Nota Revisão 1 (2.0) 2 (1.0) 3 (2.0) 4 (2.0) 5 (2.0) P1 (9,0)

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

p-fólio Modelação de Sistemas de Informação U.C de julho de 2018 Critérios de Correção INSTRUÇÕES

INF 1620 P1-11/04/08 Questão 1 Nome:

Arquitectura de Computadores

Programação de Computadores

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 26 de fevereiro de 2016

Faculdade de Computação

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

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 27 de janeiro de 2014 INSTRUÇÕES

Departamento de Informática - PUC-Rio INF 1007 Programação 2 P3 23/06/2010

Strings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 26 de janeiro de 2015 INSTRUÇÕES

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 20 de julho de 2015 INSTRUÇÕES

Sumário. Ficheiros. Ficheiros

Arquivos em C. Material da Prof. Ana Eliza

Arquitectura de Computadores

Aula 16: Manipulação de Arquivos em C

Métodos Computacionais. Arquivos

INF 1620 P4 30/06/07 Questão 1 Nome:

Arquitectura de Computadores

U.C Investigação Operacional. 15 de junho de INSTRUÇÕES Leia com atenção antes de iniciar a sua prova

a) Implemente uma função que retorne uma aproximação do valor de π, de acordo com a F órmula de Leibniz: ( 1)

INF 1620 P3-25/11/05 Questão 1 Nome:

Programação de Computadores II

p-fólio Arquitectura de Computadores U.C de julho de 2018 INSTRUÇÕES

A linguagem C (visão histórica)

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

U.C Raciocínio e Representação do Conhecimento. 26 de setembro de INSTRUÇÕES --

-- INSTRUÇÕES Leia com atenção antes de iniciar a sua prova

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

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

Introdução a Programação. Manipulando Arquivos em Modo Texto

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

Aula 9 Oficina de Programação Strings. Profa. Elaine Faria UFU

Linguagem de Programação I. Aula 11 Strings

INF 1007 P2 23/10/10 Nome: Instruções:

UNIVERSIDADE DA BEIRA INTERIOR

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

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 31 de janeiro de 2013 INSTRUÇÕES

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 28 de julho de 2014 INSTRUÇÕES

Operações em Arquivos. MC102 Felipe Bergo

Aula 18: Funções em C

Fundamentos de Programação

Programação para Computação 13ª Aula

Conhecendo a Linguagem de Programação C

Resolução e Critérios de Correção U.C Fundamentos de Bases de Dados. 28 de janeiro de 2019 INSTRUÇÕES

INF 1620 P2-17/05/08 Questão 1 Nome:

1/24 FICHEIROS DE TEXTO

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos

Linguagem C. André Tavares da Silva.

USP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

-- INSTRUÇÕES Leia com atenção antes de iniciar a sua prova

9. Arquivos em C. Prof. Renato Tinós. Departamento de Computação e Matemática (FFCLRP/USP) Introdução à Computação II

Linguagem C: Introdução

1 Exercícios com ponteiros

Aula: ARQUIVOS. Introdução à Ciência da Computação I Simone Senger Souza. ICMC/USP São Carlos

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

SSC304 Introdução à Programação Para Engenharias. Arquivos. GE4 Bio

Reinaldo Gomes Alocação Dinâmica

Suponha um conjunto habitacional, com várias famílias... imagina se todas elas morassem em uma única casa?

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

Aula 16. Ficheiros de texto

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

INF 1620 P2-23/10/04 Questão 1 Nome:

Mestrado em Engenharia Física Tecnológica

Estruturas de Dados Aula 6: Cadeias de 28/03/2010

Estruturas de Dados Aula 6: Cadeias de Caracteres

Transcrição:

p-fólio U.C. 21090 Programação 11 de fevereiro de 2016 -- INSTRUÇÕES -- O tempo de duração da prova de p-fólio é de 90 minutos. O estudante deverá responder à prova na folha de ponto e preencher o cabeçalho e todos os espaços reservados à sua identificação, com letra legível. Sempre que não utilize o enunciado da prova para resposta, poderá ficar na posse do mesmo. Verifique no momento da entrega da(s) folha(s) de ponto se todas as páginas estão rubricadas pelo vigilante. Caso necessite de mais do que uma folha de ponto, deverá numerá-las no canto superior direito. Em hipótese alguma serão aceites folhas de ponto dobradas ou danificadas. Exclui-se, para efeitos de classificação, toda e qualquer resposta apresentada em folhas de rascunho. Os telemóveis deverão ser desligados durante toda a prova e os objetos pessoais deixados em local próprio da sala de exame. A prova é constituída por 5 páginas e termina com a palavra FIM. Verifique o seu exemplar e, caso encontre alguma anomalia, dirija-se ao professor vigilante nos primeiros 15 minutos, pois qualquer reclamação sobre defeito(s) de formatação e/ou de impressão que dificultem a leitura não será aceite depois deste período. Utilize unicamente tinta azul ou preta. O p-fólio é constituído por quatro Grupos, com a cotação de 3 valores cada. A resposta a cada grupo deve ser dada na folha de ponto. No grupo I devem ser dadas respostas para todos os espaços por preencher no enunciado, e nos restantes grupos deve escrever código utilizando uma linha da folha de ponto por cada linha de código. Ao resolver os grupos III e IV, pode e deve utilizar as funções definidas nos grupos anteriores, mesmo que não os tenha realizado. Os programas devem ser escritos em linguagem C podendo utilizar funções da biblioteca standard. Em anexo está uma lista com as funções da biblioteca standard mais utilizadas, não sendo necessário utilizar a primitiva #include. -1-

Grupo I (3 valores) a) [1 valor] Considere o seguinte programa: 1 #include <stdio.h> 2 3 int main() 4 { 5 /* declaração de duas variáveis inteiras */ 6 int x=205, y=-105; 7 8 /* trocar o valor de x com y */ 9 x=x+y; 10 y=x-y; 11 x=x-y; 12 13 /* mostrar os valores em x e em y */ 14 printf("x: %d, y: %d",x,y); 15 } Complete os espaços vazios da execução passo a passo: P. L. Instr. Resultado 1 6 int.. x=, y= 2 9 x=x+y; x=, y= 3 10 y=x-y; x=, y= 4 11 x=x-y; x=, y= 5 14 printf.. x:50, y:52 x=, y= b) [1 valor] Considere a seguinte expressão lógica, que é verdadeira quando um ano é bissexto: ano%4==0 && ano%100!=0 ano%400==0 Indique para o ano 704, quais as expressões avaliadas, e respectivo resultados parciais e final: ano%4==0 ano%100!=0 ano%400==0 Resultado -2-

c) [1 valor] Considere o seguinte programa: 1 #include <stdio.h> 2 3 /* programa que calcula N^N */ 4 int main() 5 { 6 int i=0, N, resultado=1; 7 printf("indique N: "); 8 scanf("%d", &N); 9 while(i<n) { 10 resultado*=n; 11 i++; 12 } 13 printf("resultado %d^%d: %d",n,n,resultado); 14 } Sendo conhecido o estado de um passo, numa execução passo a passo, preencha os valores relativos ao passo seguinte: P. L. Instr. Resultado... 14 10 res*=.. i=3, N=4, resultado=256 Passo: 15 Linha: Variáveis: i=, N=, resultado= Resultado: Verdadeiro Falso Sem expressão lógica Grupo II (3 valores) Implemente um procedimento CifraCesar que recebe uma string e uma chave inteira, e aplica a Cifra de Júlio César aos dígitos numéricos (caracteres de 0 a 9). Esta cifra substitui cada carácter por K caracteres à frente, dando a volta tanto nas letras como nos dígitos, isto é, 0 com um K de 11, fica 1 (10 dígitos mais 1). Deve deixar inalterados os caracteres não numéricos. No exemplo podese ver que a chave 12, transforma o 1 em 3 (dá a volta e ainda incrementa duas unidades), o 2 em 4, e assim sucessivamente. Programa: int main(int argc, char** argv) { char str[255]; if(argc!=2) return; printf("\nnumero: "); gets(str); CifraCesar(str,atoi(argv[1])); printf("codificacao: %s",str); } C:\...>normal1516g2 12 Numero: 1234 Codificacao: 3456-3-

Grupo III (3 valores) Melhore agora o procedimento CifraCesar, de modo a aplicar a cifra tanto aos dígitos de acordo com o grupo II, como também às letras minúsculas, e às letras maiúsculas. Estes três conjuntos de caracteres devem ser considerados em separado, sendo um dígito codificado para um dígito, uma letra minúscula codificada para uma letra minúscula, e uma letra maiúscula para uma letra maiúscula. O programa que chama a função é idêntico ao do grupo II. Na execução de exemplo, pode-se ver a letra a transformada para a letra m, que está 12 posições à frente, e o número no texto com a mesma codificação que no grupo II, tendo-se utilizado a mesma chave. C:\...>normal1516g3 12 Texto: abcd 1289 ABCD Codificacao: mnop 3401 MNOP Grupo IV (3 valores) Faça um programa que receba nos argumentos o nome de um ficheiro a codificar, e retorne o ficheiro codificado para a consola. Assuma que o ficheiro não tem linhas superiores a 200 caracteres. Na execução de exemplo, o ficheiro com uma possível resolução deste grupo, é codificado com a chave 12435. Vê-se a parte inicial do resultado do programa.. C:\...>normal1516g4 normal1516g4.c 12435 #pujsbkl <zakpv.o> #pujsbkl <zakspi.o> /* Jpmyh kl JÚzhy: N7 - hwluhz kýnpavz N8 - kýnpavz l slayhz thp zjbshz/tpu zjbshz N9 - jvkpmpjhy bt mpjolpyv */ johy Jpmyh(johy h, pua johcl, johy pupjpv, johy mpt) { -4-

Anexo Funções standard mais utilizadas Exemplos de chamadas: printf( texto %d %g %s %c, varint, vardouble, varstr, varchar); Imprime no ecran uma string formatada, em que é substituído o %d pela variável inteira seguinte na lista, o %g pela variável real na lista, o %s pela variável string na lista, o %c pela variável caracter na lista. scanf( %d, &varint); gets(str); scanf é a função inversa do printf, lê um inteiro e coloca o seu resultado em varint, cujo endereço é fornecido. A função gets lê uma string para str. Protótipos: int atoi(char *str); float atof(char *str); Converte uma string num número inteiro/real respectivamente int strlen(char *str); Retorna o número de caracteres da string str strcpy(char *dest, char *str); [strcat] Copia str para dest, ou junta str no final de dest, respectivamente char *strstr(char *str, char *find); char *strchr(char *str, char find); Retorna a primeira ocorrência de find em str, ou NULL se não existe. Na versão strchr find é um caracter. char *strtok(char *string, char *sep); char *strtok(null, char *sep); Retorna um apontador para uma token, delimitada por sep. A segunda chamada retorna a token seguinte, na mesma string, podendo-se continuar a chamar a função até que retorne NULL, o que significa que a string inicial não tem mais tokens para serem processadas. sprintf(char *str, ); sscanf(char *str, ); Estas funções têm o mesmo funcionamento de printf/scanf, mas os dados são colocados (ou lidos) em str. int strcmp(char *str1, char *str2); Retorna 0 se str1 é igual a str2, retornando um valor negativo/positivo se uma string é maior/menor que a outra int isalpha(int c); [isdigit,isalnum,islower,isupper,isprint] Retorna true se c é uma letra / dígito numérico / letra ou dígito / minúscula / maiúscula / imprimivel. void *malloc(size_t); free(void *pt); malloc retorna um apontador para um bloco de memória de determinada dimensão, ou NULL se não há memória suficiente, e a função free liberta o espaço de memória apontado por pt e alocado por malloc FILE *fopen(char *fich, char *mode); fclose(file *f); fopen abre o ficheiro com nome fich, no modo mode ( rt leitura em modo texto, wt escrita em modo texto), e fclose fecha um ficheiro aberto por fopen fprintf(f, ); fscanf(f, ); fgets(char *str, int maxstr, FILE *f); idênticos ao printf/scanf mas direccionados para o ficheiro, e fgets é uma versão do gets mas com limite máximo da string indicado em maxstr. int feof(file *f); feof retorna true se o ficheiro f está no fim, e false c.c. fseek(f,posicao,seek_set); fwrite/fread(registo,sizeof(estrutura),1,f); funções de leitura binária (abrir em modo rb e wb ). fseek posiciona o ficheiro numa dada posição, fwrite/fread escrevem/lêm um bloco do tipo estrutura para o endereço de memória registo. int rand(); srand(int seed); rand retorna um número pseudo-aleatório e srand inicializar a sequência pseudo-aleatória time_t time(null); clock_t clock(); time retorna um número segundos que passaram desde uma determinada data, e clock o número de instantes (há CLOCKS_PER_SEC instantes por segundo) double sin(double x); [cos,log,log10,sqrt] double pow(double x,double y); Funções matemáticas mais usuais, com argumentos e valores retornados a double FIM -5-