Escolar Documentos
Profissional Documentos
Cultura Documentos
RA: 9902004391
Turma: 4 semestre
EXERCICIOS
1
#include <stdio.h>
#include <conio.h>
void main (void) {
int i, j;
int Tam, Matriz[29][29];
int Linha, Coluna, LinhaAtual, ColunaAtual;
for (i=0;i<29;i++)
for (j=0;j<29;j++)
Matriz[i][j] = 0;
do {
printf("\nTamanho da Matriz (nro. impar entre 5 e 29): ");
scanf("%d",&Tam);
} while ((Tam%2==0) || (Tam>29) || (Tam<5));
Linha = 0;
Coluna = Tam/2;
Matriz[Linha][Coluna] = 1;
for (i=2;i<=Tam*Tam;i++) {
LinhaAtual = Linha;
ColunaAtual= Coluna;
if (((Linha-1)<0) && ((Coluna-1)<0)){
Linha = Tam-1;
Coluna = Tam-1;
}else
if (((Linha-1)<0) && ((Coluna-1)>=0)){
Linha = Tam-1;
Coluna = Coluna - 1;
}else
if (((Linha-1)>=0) && ((Coluna-1)<0)){
Linha = Linha -1;
Coluna = Tam-1;
}else
if (((Linha-1)>=0) && ((Coluna-1)>=0)){
Linha = Linha - 1;
Coluna = Coluna -1;
}
if (Matriz[Linha][Coluna] == 0)
Matriz[Linha][Coluna] = i;
}else{
Linha = (LinhaAtual+1)>=Tam ? 0 : LinhaAtual+1;
Coluna = ColunaAtual;
Matriz[Linha][Coluna] = i;
}
}
for (i=0;i<Tam;i++){
for (j=0;j<Tam;j++)
printf("%3d ", Matriz[i][j]);
printf("\n");
}
getch();
}
2
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
void main (void){
int
linha, coluna, i;
printf("Digite a mensagem\n");
gets(Texto);
for (linha=0;linha<64;linha++)
for (coluna=0;coluna<4;coluna++)
Matriz[linha][coluna] = ' ';
i
= 0;
linha
= 0;
coluna = 0;
while(Texto[i]!='\0'){
if (Texto[i]!=' '){
Matriz[linha][coluna] = Texto[i];
}else{
Matriz[linha][coluna] = 'X';
}
if (++coluna > 3){
coluna = 0;
if (++linha >63){
printf("Limite de caracteres ultrapassado"); getch();
exit;
}
}
i++;
}
i = 0;
for (coluna=0;coluna<4;coluna++){
for (linha=0;linha<65;linha++){
if (Matriz[linha][coluna]==' '){
Criptografado[i] = ' '; i++;
break;
}
Criptografado[i] = Matriz[linha][coluna]; i++;
}}
Criptografado[i] = '\0';
printf("\n%s",Criptografado);
getch();
}
}
for(coluna=0;coluna<P;coluna++){
printf("Elemento %d: ", coluna);
scanf("%f", &VetorColuna[coluna]);
}
for (linha=0;linha<N;linha++){
for (coluna=0;coluna<P;coluna++)
{
MatrizResultado[linha][coluna] = VetorLinha[linha] *VetorColuna[coluna];
}
}
for (linha=0;linha<N;linha++){
for (coluna=0;coluna<P;coluna++){
printf("%f
", MatrizResultado[linha][coluna]);
}
printf("\n");
}
getch();
}
/* SOLUCAO UTILIZANDO NOTACAO DE PONTEIROS E ALOCACAO DINAMICA DE
MEMORIA */
#include <stdio.h>
#include <conio.h>
#include <stdlib.h> void
main(void){
float *VetorLinha, *VetorColuna, *MatrizResultado; int N, P,
linha, coluna;
do {
printf("Qual a dimensao P? "); scanf("%d",&P);
} while ( (P>30) || (P<0));
VetorLinha = (float *)calloc(P,sizeof(float)); /* alocacao dinamica */ do {
printf("Qual a dimensao N? "); scanf("%d",&N);
} while ( (N>30) || (N<0));
VetorColuna = (float *)calloc(N,sizeof(float));
4
SOLUCAO UTILIZANDO NOTACAO DE VETORES E MATRIZES
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
aux_valor; char
aux_nome[51];
for (i=0;i<TAM_MAX;i++){
printf("Digite o Nome[%d]: ", i); scanf("%s",
Vetor[i].Nome);
printf("Digite o Valor[%d]: ", i); scanf("%f",
&Vetor[i].Valor);
}
do {
troca = 0;
for (i=0;i<TAM_MAX-1;i++)
{
if (Vetor[i].Valor>Vetor[i+1].Valor)
/* vetores
*/
{
troca = 1;
aux_valor
= Vetor[i].Valor; Vetor[i].Valor
Vetor[i+1].Valor; Vetor[i+1].Valor = aux_valor;
strcpy(aux_nome, Vetor[i].Nome);
strcpy(Vetor[i].Nome,Vetor[i+1].Nome);
strcpy(Vetor[i+1].Nome,aux_nome);
}
}
} while (troca==1);
for (i=0;i<TAM_MAX;i++){
printf("%s \t %f \n", Vetor[i].Nome,Vetor[i].Valor);
}
getch();
}
/* vetores */
= (Vetor+i)->Valor;
(Vetor+i)->Valor
= (Vetor+i+1)->Valor;
(Vetor+i+1)->Valor = aux_valor;
strcpy(aux_nome, (Vetor+i)->Nome);
strcpy((Vetor+i)->Nome,(Vetor+i+1)->Nome);
strcpy((Vetor+i+1)->Nome,aux_nome);
}
}
} while (troca==1);
for (i=0;i<TAM_MAX;i++) {
printf( "%s \t %f \n", (Vetor+i)->Nome,(Vetor+i)->Valor); /* ponteiros */
}
getch();
free(Vetor);
}