Aula 16
-------
VARIADO
-------
---------------------------------------
Exercícios com strings, ver aula 14
---------------------------------------
1) void maius(char s[]) <-- passa as minúsculas para maiúsculas
usar #define
2) void cola(char s[],char t[])
O string s (que se supões ter espaço suficiente...) fica
com s seguido de t (que não é modificado)
s="aiai", t="zinho" ==> s="aiaizinho", t="zinho"
Método:
- encontrar o fim de s
- copiar t para aí
- colocar 0 no fim.
3) void semvogais(char s[]) <--- elimina de s as vogais...
s="Batatas!! Ai!" ==> s="Btts!! !"
Método:
- percorre s; para cada vogal chegar o resto de s (incluindo o
0 final) de uma unidade para trás
s="Batatas!! s="Btatas!!
^-------- ^
A definir:
- Um #define VOGAL(c)
-----------------------------------
Um exercício com parâmetros no main
-----------------------------------
Escreva um programa que conta e imprime quantas palavras <pal>
ocorrem na entrada padrão.
Uso:
contapals <pal> < f
(conta quantas palavras "if" existem no ficheiro f)
---------------------------------------
Um exercício "das provas de computador"
---------------------------------------
Escreva uma função
void prod_atras(int v[],int n)
que substitua cada elemento v[i] do vector v pelo produto dos
elementos que estão antes (têm menor índice) que ele.
O promeiro elemento fica com 1 (escolha natural; porquê?)
Exemplo:
seja v[] = 2 3 4 5 3
fica 1 2 6 24 120
Pensamentos:
ao substituir 2 por 1 perdi o 2...
calcular o produto de todos e ...
Notas:
- não pode usar outros vectores.
- deve copiar, testar e submeter o seguinte programa preenchendo
apenas a parte indicada.
Programa para testar
--------------------
void prod_atras(int v[],int n){
// escreva esta função...
}
//---------------------------------------
#define MAX 1000
#include <stdio.h>
int main(){
int i,n,v[MAX];
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&v[i]);
prod_atras(v,n);
for(i=0;i<n;i++)
printf("%d ",v[i]);
return 0;
}
PC/PI - página reservada - versão 2005.02.08