Jueves 14 de Noviembre de 2024, 17:17
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: Ayuda de alguien por favor
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Re: Ayuda de alguien por favor (Leído 1347 veces)
ralehuy
Nuevo Miembro
Mensajes: 4
Re: Ayuda de alguien por favor
«
en:
Jueves 11 de Julio de 2002, 21:08 »
0
Necesito ayuda de alguien que pueda transformar este programa a algo mas simple ya que no se funciones
#include<stdio.h>
#define MAX 100
FILE *dat, *out;
void mostrar(char [][16]);
void marcar(char [][16],int,int,int,int);
void limpiar(char [][16]);
char datos[MAX], pantalla[16][16];
main(){
int i, j, x, h, x_inicio, x_fin, y_inicio, y_fin;
if((dat=fopen("dibu.dat","r"))==NULL)
printf("Error de apertura del archivo 'dibu.dat'");
else{
i=-1;
while(!feof(dat)){
i++;
datos
=fgetc(dat);
if((datos
==32) || (datos
==10) || (datos
==13))
i--;
}
fclose(dat);
}
for(j=0;j<i;j++)
printf("%c,",datos[j]);
limpiar(pantalla);
mostrar(pantalla);
if(datos[0]=='1'){
x_inicio=y_inicio=1;
x_fin=y_fin=8;
}
if(datos[0]=='2'){
x_inicio=9;
x_fin=16;
y_inicio=1;
y_fin=8;
}
if(datos[0]=='3'){
x_inicio=y_inicio=9;
x_fin=y_fin=16;
}
if(datos[0]=='4'){
x_inicio=1;
x_fin=8;
y_inicio=9;
y_fin=16;
}
x=1;
while(x!=i){
while(datos
!='x'){
if(datos
=='1')
x_fin=y_fin=(0.5*(x_fin+x_inicio-1));
if(datos
=='2'){
x_inicio=(0.5*(x_fin+x_inicio+1));
y_fin=(0.5*(y_fin+y_inicio-1));
}
if(datos
=='3')
x_inicio=y_fin=(0.5*(x_fin+x_inicio+1));
if(datos
=='4'){
x_fin=(0.5*(x_fin+x_inicio-1));
y_inicio=(0.5*(y_fin+y_inicio+1));
}
x++;
}
marcar(pantalla,x_inicio,x_fin,y_inicio,y_fin);
mostrar(pantalla);
printf("ja0ja0a");
}
printf("ja0ja0a");
mostrar(pantalla);
return 0;
}
void mostrar(char pantalla[][16]){
int i,j;
for(i=0;i<=16;i++){
printf("n");
for(j=0;j<=16;j++)
printf("%c",pantalla
[j]);
}
}
void limpiar(char pantalla[][16]){
int i, j;
for(i=0;i<=16;i++)
for(j=0;j<=16;j++)
pantalla
[j]='o';
}
void marcar(char pantalla[][16], int q, int w, int e, int r){
int t, y;
for(t=q;t<=w;t++)
for(y=e;y<=r;y++)
pantalla[t][y]='x';
}
Tweet
bench
Miembro activo
Mensajes: 36
Ayuda de alguien por favor
«
Respuesta #1 en:
Viernes 19 de Julio de 2002, 05:04 »
0
#include<stdio.h>
#define MAX 100
FILE *dat, *out;
void mostrar(char [][16]);
void marcar(char [][16],int,int,int,int);
void limpiar(char [][16]);
char datos[MAX], pantalla[16][16];
main()
{
int i, j, x, h, x_inicio, x_fin, y_inicio, y_fin;
if((dat=fopen("dibu.dat","r"))==NULL)
printf("Error de apertura del archivo 'dibu.dat'");
else
{
i = 0;
while(!feof(dat))
{
/* i++; */
/*******************
Datos es Un Puntero a Un arreglo de MAX caracteres y le estas asignando el
retorno de la función fgets que es un int o un char.
*******************/
datos
= fget(dat); /*datos = fgetc(dat);*/
if((datos
== 32) || (datos
== 10) || (datos
== 13)) continue;
i++;
}
fclose(dat);
}
for(j = 0; j < i; j++) printf("%c,",datos[j]);
limpiar(pantalla);
mostrar(pantalla);
if(datos[0] == '1')
{
x_inicio = y_inicio = 1;
x_fin = y_fin = 8;
}
if(datos[0] == '2')
{
x_inicio = 9;
x_fin = 16;
y_inicio = 1;
y_fin = 8;
}
if(datos[0] == '3')
{
x_inicio = y_inicio = 9;
x_fin=y_fin = 16;
}
if(datos[0] == '4')
{
x_inicio=1;
x_fin=8;
y_inicio=9;
y_fin=16;
}
x = 1;
while(x != i)
{
while(datos
!= 'x')
{
if(datos
== '1')
/*****
Incorrecto Por Ser Variables Int
Para Multiplicarlas Por 0.5 deben ser declaradas como float o como double
*******************************/
x_fin = y_fin = (0.5*(x_fin+x_inicio-1));
if(datos
=='2'){
x_inicio=(0.5*(x_fin+x_inicio+1));
y_fin=(0.5*(y_fin+y_inicio-1));
}
/***
Desoues continuo.
*****/
if(datos
=='3')
x_inicio=y_fin=(0.5*(x_fin+x_inicio+1));
if(datos
=='4'){
x_fin=(0.5*(x_fin+x_inicio-1));
y_inicio=(0.5*(y_fin+y_inicio+1));
}
x++;
}
marcar(pantalla,x_inicio,x_fin,y_inicio,y_fin);
mostrar(pantalla);
printf("ja0ja0a");
}
printf("ja0ja0a");
mostrar(pantalla);
return 0;
}
void mostrar(char pantalla[][16]){
int i,j;
for(i=0;i<=16;i++){
printf("n");
for(j=0;j<=16;j++)
printf("%c",pantalla[j]);
}
}
void limpiar(char pantalla[][16]){
int i, j;
for(i=0;i<=16;i++)
for(j=0;j<=16;j++)
pantalla[j]='o';
}
void marcar(char pantalla[][16], int q, int w, int e, int r){
int t, y;
for(t=q;t<=w;t++)
for(y=e;y<=r;y++)
pantalla[t][y]='x';
}
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Re: Ayuda de alguien por favor