TP_RevisaoC I

Propaganda
Disciplina: Técnicas de Programação_______________________________________________________
Universidade Federal de Campina Grande
Centro de Ciências e Tecnologia
Departamento de Sistemas e Computação
Disciplina: Técnicas de Programação
Profs.: Joseana Macedo Fechine
José Eustáquio Rangel de Queiroz
DSC/CCT/UFCG
Exercício de Revisão
DATA: 10/05/2004
DISCIPLINA
Técnicas de Programação
Exercícios de Revisão I – Linguagem C
Campina Grande – PB
Maio, 2004
DSC/CCT/UFCG ___________________________________________________________________
1
Disciplina: Técnicas de Programação_______________________________________________________
Exercícios de Revisão 1 − Linguagem C
1)
Mostrar ao lado de cada chamada à função printf o que será exibido na execução
do programas abaixo.
1.1)
Programa 1
#include <stdio.h>
void main(void)
{
int m[2][2] = {{14, 29}, {58,33}};
int v1 = 0, v2 = 1;
char str[] = "AEIOU";
printf("[%4d]", m[++v1][v2++]);
printf("[%-4d]", v1);
v2 += v1;
printf("[%04d]", v2);
printf("[%4.2s]", str);
v1 = (m[0][1]>m[1][0])?2:3;
printf("[%c]", str[v1]);
}
1.2)
Programa 2
#include <stdio.h>
void main(void)
{
int n1=10, n2=8;
char txt[]="ABCDEF";
float vf=13.0;
printf("[%3d]", n1);
printf("[%04d]", n2);
printf("[%10s]", txt);
printf("[%c]", txt[1]);
printf("[%-8.3s]", txt);
printf("%10.2f", vf);
}
2)
Informe a operação realizada pelos programas abaixo.
2.1)
Programa 1
#include <stdio.h>
int main()
{
int x;
scanf("%d",&x);
printf("%d",x);
return (0);
}
2
Disciplina: Técnicas de Programação_______________________________________________________
2.2)
Programa 2
int main()
{
float Nota1,Nota2,Nota3,Nota4, Media;
printf("Digite a 1 nota");
scanf("%f", &Nota1);
printf("Digite a 2 nota");
scanf("%f", &Nota2);
printf("Digite a 3 nota");
scanf("%f", &Nota3);
printf("Digite a 4 nota");
scanf("%f", &Nota4);
Media = (Nota1 + Nota2 + Nota3 + Nota4) /
4;
printf("A media e: %f", Media);
return 0;
}
2.3)
Programa 3
#include <stdio.h>
int main(){
int valor, resto;
float nota,notaf;
clrscr();
printf (“Digite uma nota: );
scanf (“%f”, &nota);
valor = nota * 10;
resto = valor % 10;
if (resto <= 5)
notaf = (valor – resto) / 10.0;
else
notaf = (valor + (10 – resto))/10.0;
printf (“Nota Final : %f”, notaf);
return 0;
}
3.
Usando a Linguagem C, solucione os problemas abaixo apresentados.
3.1)
Escreva um programa que ordene inversamente os primeiros cem números inteiros.
3.2)
Num laboratório de Física, em uma experiência relativa a Movimento
Uniformemente Variado, foram encontrados os seguintes valores: s 0 = 2 m,
v0 = 3 m/s, a = 10m/s². Digitado o valor de t, em segundos, apresentar em tela o
valor de s, em metros. (Dica: Lembre-se da expressão s = s0 + v0.t + ½.a.t²)
DSC/CCT/UFCG ___________________________________________________________________
3
Disciplina: Técnicas de Programação_______________________________________________________
3.3)
Escrever um programa que receba, via teclado, os valores do espaço percorrido e
do tempo gasto por um veículo em movimento e calcule e apresente em tela sua
velocidade média.
3.4)
O critério de avaliação semestral de determinada escola envolve as seguintes
notas:
P1 – primeira avaliação do semestre.
P2 – segunda avaliação do semestre.
A – nota atribuída pelas atividades realizadas no semestre.
Escreva um programa que leia as notas das provas (P1 e P2) e das atividades
semestrais (A), calcule e apresente a média ponderada, sabendo que às duas
provas são atribuídos pesos iguais (4), enquanto a nota das atividades recebe peso
2.
3.5)
Elaborar um programa para calcular e imprimir o volume (V) de uma esfera e a área
(A) de sua superfície, dado o valor de seu raio (R). (Dica: Lembre-se que as
expressões para o cálculo do volume e da área da esfera são, respectivamente,
V = 4/3 R³ e A = 4R².
3.6)
Escrever um programa que receba, via teclado, um determinado número inteiro e
apresente em tela uma mensagem informando se o número é par ou ímpar.
3.7)
Para tornar segura a transmissão de dados, costuma-se codificá-los antes de
transmiti-los. Suponha um número X qualquer de 3 dígitos na forma d1d2d3 (e.g.
237, no qual d1 = 2, d2 = 3 e d3 = 7). Escreva um programa em C que transforme o
número X = d1d2d3 em um número Y = f1f2f3, correspondente a X codificado, usando
a seguinte regra:
f1 = ((d3 + 7) mod 10)
f2 = ((d1 + 6) mod 9)
f3 = (9 mod (d2 + 1))
Obs.: O programa em C deve ler X e imprimir Y.
3.8)
O acesso ao Laboratório de Processamento de Sinais do DEE/UFCG é controlado a
partir de uma porta automática. Para abrir a porta referido laboratório, é necessário
o uso de uma senha, composta por 4 dígitos, no formato Y = d1d2d3C, onde C é o
dígito de controle da senha (e.g, se Y = 7207, então d1 = 7, d2 = 2 d3 = 0 e C = 7). O
dígito C da senha é uma forma de segurança que impede que pessoas não
autorizadas entrem na sala do laboratório. Caso uma pessoa não autorizada
consiga digitar uma senha, ela é testada para verificar se é válida. O setor de
segurança compõe a senha gerando aleatoriamente os dígitos d 1, d2, d3 e d4 e o
dígito C é calculado da seguinte forma:
3
C = 9 - ( [  (7 - K) * d k ] mod 10)
K =1
Assim, se d1 = 7, d2 = 2 d3 = 0 então X = 720 e C = 7. Assim, a senha válida é
Y=7207. Se a senha digitada for X = 7206, a senha é inválida e a porta permanece
fechada. Escreva um algoritmo que leia o número X = d1d2d3 e gere o número Y
conforme a regra acima.
3.9)
Escreva um programa em C que apresente em tela uma seqüência de 30 números
que obedeçam à seguinte regra: (i) os dois primeiros números são 1; e (ii) qualquer
outro número corresponde à soma dos dois anteriores ( 1 1 2 3 5 8 13 21 .... ). Esta
seqüência é conhecida como série de Fibonacci.
4
Disciplina: Técnicas de Programação_______________________________________________________
3.10) Uma empresa distribuidora de energia elétrica adotou normas de economia de
energia. Para cada imóvel, a meta de economia deve ser uma redução de 25% da
média de consumo dos meses maio, junho e julho de 2003. Escreva um programa
em linguagem C, que leia o consumo dos meses mencionados e o consumo do mês
atual para várias residências. O programa deve calcular a meta de economia,
informando se o consumidor está dentro da meta ou ultrapassou o limite. No final do
cálculo da meta de economia de cada imóvel, o programa deverá exibir uma
mensagem perguntando se o usuário deseja calcular mais uma meta; caso a
resposta seja negativa, será informado ao usuário a porcentagem de imóveis que
atingiram a meta e a porcentagem de imóveis que não a atingiram.
DSC/CCT/UFCG ___________________________________________________________________
5
Download