Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
s
Universidade Federal do Recôncavo da Bahia
Centro de Ciências Exatas e Tecnológicas
Bacharelado em Ciências Exatas e Tecnológicas
Processamento de Dados II – prof. Tiago Oliveira Motta
Vetores ou Arrays
PROGRAMA EXEMPLO: Em uma turma de 15 alunos, deseja-se calcular a média da turma, a partir de notas lidas pelo teclado. Fazer um programa que leia as 15 notas e ao final imprima a média da turma e o número de alunos que estão acima da média calculada.
/* Programa para calcular média de uma turma de 15 alunos
* e número de alunos acima da média da turma
*/
#include <stdio.h>
#define NUM_ALUNOS 15
#define MEDIA 6.f
int main()
{
float nota[NUM_ALUNOS], media=0;
int i, acima=0;
/* Leitura das notas */
for(i=0; i < NUM_ALUNOS; i++)
{
do {
printf(“Qual a nota do %d o. aluno? ",( i+1));
scanf(“%f”, ¬a[i]);
} while (nota[i] < 0 || nota[i] > 10);
media += nota[i];
}
media /= NUM_ALUNOS;
printf("A media da turma foi de %f\n”,media);
/* Procura dos alunos acima da media da turma
*/
for(i=0; i<NUM_ALUNOS; i++)
{
if(nota[i] > media)
acima++;
}
printf("O numero de alunos acima da media da turma foi de %d\n”,acima);
return 0;
}
Um pesquisador quer estudar as variações de temperatura ao longo do dia em uma localidade. Para isso ele mede a temperatura a cada 1 hora. Ao final do dia ele quer saber a temperatura média e em que horários a temperatura esteve abaixo da média. Faça um programa que leia as temperaturas lidas e forneça as informações que o pesquisador precisa.
Um armazém trabalha com um determinado número de mercadorias diferentes (um máximo de 100 itens). Faça um programa que leia e armazene em vetores os preços de cada mercadoria e a quantidade vendida no mês, calcule e imprima:
o faturamento mensal do armazém,
o número (índice) da mercadoria mais vendida e da menos vendida.
Qual é o preço da mercadoria menos vendida?
Quantas mercadorias tem seu preço mais alto que o preço da mercadoria menos vendida?
Seja o polinômio:
P(X) = anXn + an-1Xn-1 + an-2Xn-2 + .... + a1X + a0
Escreva um programa que leia um número real x, a ordem do polinômio n (no máximo 20), os coeficientes ai e calcule o resultado. Imprima o polinômio lido e o valor calculado.
PROGRAMA EXEMPLO: Faça um programa que leia uma frase de até 80 caracteres, e duas letras quaisquer do usuário. A seguir, troque na frase todas as ocorrências da primeira letra fornecida pela segunda e imprima a nova frase.
/* Programa para troca de todas as ocorrências de um caracter por outro
* em uma frase
*/
#include <stdio.h>
#define TAMANHO 80
int main()
{
char frase[TAMANHO], trocar, por;
int i;
/* Leitura da frase
*/
do {
printf("Qual a frase ? ");
gets(frase);
} while (frase[0] == '\0');
/* Letra a ser substituida na frase
*/
printf("Trocar... ");
fflush(stdin);
scanf("%c", &trocar);
printf("Por... ");
fflush(stdin);
scanf("%c", &por);
/* Troca das letras em toda a frase
*/
for(i=0; i<TAMANHO && frase[i] != '\0'; i++)
{
if(frase[i] == trocar)
frase[i] = por;
}
printf("A nova frase eh: %s\n", frase);
}
Para enviar mensagens que não devem ser lidas por estranhos, pode-se codificá-las. Faça um programa que leia uma frase de até 100 caracteres e a seguir codifique essa frase da seguinte forma: cada letra que se encontra em posição ímpar tem seu valor ASCII somado com 2 e cada letra que se encontra em posição par é substituida é trocada por outra 3 posições atrás dela na tabela ASCII. Imprima a frase codificada.
Faça um programa que decodifique uma frase codificada segundo o algoritmo acima.
Utilize as seguintes funções de caracteres, para fazer os exercícios subseqüentes. Elas se encontram na biblioteca ctype.h
int isalnum(int ch) – retorna verdadeiro se ch for um caracter alfanumérico (número ou letra)
int isalpha(int ch) – retorna verdadeiro se ch for uma letra
int isdigit(int ch) – retorna verdadeiro se ch for um número
int islower(int ch) – retorna verdadeiro se ch for uma letra minúscula
int ispunct(int ch) – retorna verdadeiro se ch for um sinal de pontuação
int isspace(int ch) – retorna verdadeiro se ch for um espaço em branco ou tabulação
int isupper(int ch) – retorna verdadeiro se ch for maiúscula
int tolower(int ch) – retorna ch transformado em letra minúscula
int toupper(int ch) – retorna ch transformado em letra maiúscula
PROGRAMA EXEMPLO (INCOMPLETO) Complete o programa abaixo para que leia uma frase de até 80 caracteres e a seguir imprima:
quantos caracteres foram digitados
quantos espaços brancos existem na frase;
quantos desses caracteres são minúsculos e quantos são maiúsculos
quantos desses caracteres são dígitos
quantos desses caracteres são de pontuação
#include <stdio.h>
#include <ctype.h>
#define TAMANHO 80
void main()
{
char frase[TAMANHO];
int i, tamanho=0, branco=0, minusc=0, maiusc=0, digitos=0, pontuacao=0;
/* Leitura da frase
*/
do {
printf("Qual a frase? ");
gets (frase);
} while (frase[0] == '\0');
/* Procura dos caracteres pedidos
*/
for(i=0; i < TAMANHO && frase[i] != '\0'; i++)
{
tamanho++;
if(isspace(frase[i]))
branco++;
if(islower(frase[i]))
minusc++;
/* continue aqui....
*/
}
printf("A frase contem %d caracteres\n", tamanho);
printf("O numero de espacos em branco eh de %d\n", branco);
printf("O numero de caracteres minúsculos eh de %d\n", minusc);
/* continue aqui
*/
}
Faça um programa que leia uma frase de até 80 caracteres e inverta todas as letras maiúsculas para minúsculas e vice-versa e além de colocar um hífem no lugar de todos os espaços em branco. Imprima o resultado.
�