//pc20 listas dobles
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
struct xtemas{
char tema[40];
char desc[160];
struct xtemas *sig;
struct xtemas *ant;
};
struct xtemas *prim;
struct xtemas *ulti;
struct xtemas *encuentra(char *);
void introducir(void), buscar(void), guardar(void);
void recuperar(void), listar(void);
void eliminar(struct xtemas **, struct xtemas **);
void lista_doble(struct xtemas *i, struct xtemas **prim,
struct xtemas **ulti);
void entras(char *, char *, int), desplegar(struct xtemas *);
int menu(void);
int menu(void){
char s[80];
int c;
printf("\n\tMENU\n");
printf("1. Introducir tema\n");
printf("2. Buscar tema\n");
printf("3. Actualizar tema\n");
printf("4. Eliminar tema\n");
printf("5. Listar temas\n");
printf("6. Guardar temas\n");
printf("7. Recuperar temas\n");
printf("8. Fin\n");
do{
printf("\nIntroducir opcion: ");
gets(s);
c = atoi(s);
}while(c<0 || c>8);
return c;
}
void introducir(void){
struct xtemas *info;
for(;;){
info = (struct xtemas *)malloc(sizeof(struct xtemas));
if(!info) {
printf("\nFuera de memoria...");
return;
}
entras("Introducir tema: ", info->tema, 30);
if(!info->tema[0]) break;
entras("Introducir desc: ", info->desc, 40);
if(!info->desc[0]) break;
lista_doble(info, &prim, &ulti);
}
}
void entras(char *prompt, char *s, int count){
char p[255];
do{
printf("%s\n",prompt);
fgets(p, 254, stdin);
if(strlen(p) > count) printf("\nMuy largo\n");
}while(strlen(p) > count);
p[strlen(p)-1] = 0;
strcpy(s, p);
}
void actualizar(void){
struct xtemas *info;
char s[100];
entras("Introduce tema: ", s, 30);
info = encuentra(s);
if(!info){
printf("No encontrado...\n");
}else{
entras("Introducir tema: ", info->tema, 30);
//if(!info->tema[0]) break;
entras("Introducir desc: ", info->desc, 40);
//if(!info->desc[0]) break;
//lista_doble(info, &prim, &ulti);
}
}
void lista_doble(
struct xtemas *i,
struct xtemas **prim,
struct xtemas **ulti ){
struct xtemas *viejo, *p;
if(*ulti==NULL){
i->sig = NULL;
i->ant = NULL;
*ulti = i;
*prim = i;
return;
}
p = *prim;
viejo = NULL;
while(p){
if(strcmp(p->tema, i->tema)<0){
viejo = p;
p = p->sig;
}else {
if(p->ant){
p->ant->sig = i;
i->sig = p;
i->ant = p->ant;
p->ant = i;
return;
}
i->sig = p;
i->ant = NULL;
p->ant = i;
*prim = i;
return;
}
}
viejo->sig = i;
i->sig = NULL;
i->ant = viejo;
*ulti = i;
}
void eliminar(struct xtemas **prim, struct xtemas **ulti){
struct xtemas *info;
char s[80];
entras("Introduce tema: ", s, 30);
info = encuentra(s);
if(info){
if(*prim==info){
*prim=info->sig;
if(*prim) (*prim)->ant = NULL;
else *ulti = NULL;
}else{
info->ant->sig = info->sig;
if(info!=*ulti)
info->sig->ant = info->ant;
else
*ulti = info->ant;
}
free(info);
}
}
struct xtemas *encuentra( char *tema){
struct xtemas *info;
info = prim;
while(info){
if(!strcmp(tema, info->tema)) return info;
info = info->sig;
}
printf("Tema no encontrado\n");
return NULL;
}
void listar(void){
struct xtemas *info;
info = prim;
while(info){
desplegar(info);
info = info->sig;
}
}
void desplegar(struct xtemas *info){
printf("%s\n", info->tema);
printf("%s\n", info->desc);
//printf("\n\n");
}
void buscar(void){
char tema[40];
struct xtemas *info;
printf("Introducir tema: ");
gets(tema);
info = encuentra(tema);
if(!info) printf("No encontrado...\n");
else desplegar(info);
}
void guardar(void){
struct xtemas *info;
FILE *fp;
fp = fopen("mlist", "wb");
if(!fp){
printf("No abre archivo...\n");
exit(1);
}
printf("\nGuardando archivo...\n");
info = prim;
while(info){
fwrite(info, sizeof(struct xtemas), 1, fp);
info = info->sig;
}
fclose(fp);
}
void recuperar(){
struct xtemas *info;
FILE *fp;
fp = fopen("mlist", "rb");
if(!fp){
printf("No se abre archivo...\n");
exit(1);
}
while(prim){
info = prim->sig;
free(info);
prim = info;
}
prim = ulti = NULL;
printf("\nRecuperando archivo...\n");
while(!feof(fp)){
info = (struct xtemas *) malloc(sizeof(struct xtemas));
if(!info){
printf("Fuera de memoria...");
return;
}
if(1 != fread(info, sizeof(struct xtemas), 1, fp)) break;
lista_doble(info, &prim, &ulti);
}
fclose(fp);
}
int main(void){
prim = ulti = NULL;
for(;;){
switch(menu()){
case 1:
introducir();
break;
case 2:
buscar();
break;
case 3:
actualizar();
break;
case 4:
eliminar(&prim, &ulti);
break;
case 5:
listar();
break;
case 6:
guardar();
break;
case 7:
recuperar();
break;
case 8:
printf("Fin del programa...");
exit(0);
}
}
return 0;
}
Vistas de página en total
martes, 25 de febrero de 2014
Programación android con CCTools y C - pc19
//pc019 Programa de estructura y arreglo
#include<stdio.h>
#include<stdlib.h>
#define max 5
struct stemas{
char tema[100];
char desc[890];
}arreglot[max];
//struct stemas arreglot[max];
void inicializar(){
int i;
for(i=0; i<max; i++){
*arreglot[i].tema='\0';
}
}
void recuperar(){
FILE *fp;
int i;
if((fp=fopen("temas1","rb")) == NULL){
printf("No se abre archivo temas1...\n");
return;
}
inicializar();
for(i=0;i<max;i++)
if(fread(&arreglot[i],sizeof(struct stemas),1,fp) != 1){
if(feof(fp)){
printf("Archivo recuperado...\n");
fclose(fp);
return;
}
printf("Error de lectura...\n");
}
printf("Archivo recuperado...\n");
}
void guardar(){
int i;
FILE *fp;
if((fp=fopen("temas1","wb"))==NULL){
printf("No se abre archivo temas1...\n");
return;
}
for(i=0;i<max;i++){
if(*arreglot[i].tema)
if(fwrite(&arreglot[i],sizeof(struct stemas),1,fp) !=1)
printf("Error de escritura...");
}
printf("Archivo guardado...\n");
fclose(fp);
}
void listar(void){
int i;
for(i=0;i<max;i++){
printf("Tema: %s\n",arreglot[i].tema);
printf("Desc: %s\n",arreglot[i].desc);
}
}
void eliminar(int nt){
if(nt != -1){
*arreglot[nt].tema = '\0';
*arreglot[nt].desc = '\0';
puts("Tema y Descripción eliminados...");
}
}
void actualizar(nt){
int r;
char t1[100];
char t2[900];
r = nt;
printf("Reg: %d\n",r);
if(r != -1){
puts("\nIntroduce tema, max. 100 caracteres: ");
gets(t1);
if(strlen(t1)>100){
printf("\nTema %d > 100 caracteres...\n",strlen(t1));
printf("Repite 1.Introducir Tema...\n");
}else{
strcpy(arreglot[r].tema,t1);
puts("\nIntroduce .desc, max 900 caracteres: ");
gets(t2);
if(strlen(t2)>900){
printf("\nDescripción %d > 900 caracteres...\n",strlen(t2));
printf("Repite 1.Introducir Tema...\n");
*arreglot[r].tema = '\0';
}else{
strcpy(arreglot[r].desc,t2);
}
}
}
}
void desplegar(int nt){
//int nt;
if(nt != -1){
printf("\nTema:%s \nDescripción: %s\n",arreglot[nt].tema,arreglot[nt].desc);
}
}
int encontrar(){
char s[20];
int r;
printf("Introduce tema:\n");
gets(s);
for(r=0;r<5;r++){
if(!strcmp(s,arreglot[r].tema)) break;
}
if(r==5){
printf("tema no esta...\n");
return(-1);
}
return r;
}
void entras(char *promp, char *s, int num){
char c[100];
do{
printf("%s",promp);
gets(c);
if(strlen(c)>=num)
printf("\nDemasiado largo...\n");
}while(strlen(c)>=num);
strcpy(s,c);
}
void introducir(void){
int i;
do{
for(i=0;i<max;i++){
if(!*arreglot[i].tema) break;
}
//i=0;
printf("Reg: %d\n",i);
if(i>=max){
printf("Arreglo de temas max...");
break;
}else{
puts("\nTerminar con linea en blanco...");
//puts("Introduce tema");
//gets(arreglot[i].tema);
entras("Introduce tema: \n",arreglot[i].tema,100);
if(!*arreglot[i].tema) break;
//puts("Introduce desc");
//gets(arreglot[i].desc);
entras("Introduce descripcion: \n",arreglot[i].desc,900);
if(!*arreglot[i].desc){
*arreglot[i].tema='\0';
break;
}
}
}while(1);
}
int main(void){
int menu,r;
char s[80];
inicializar();
do{
printf("\n\t\tMENU \n");
printf("1 Introducir Tema \n");
printf("2 Desplegar Tema \n");
printf("3 Actualizar Tema \n");
printf("4 Eliminar Tema \n");
printf("5 Listar Temas \n");
printf("6 Guardar Temas \n");
printf("7 Recuperar Temas \n");
printf("8 Terminar \n");
do{
printf("Selecciona opcion:");
gets(s);
menu=atoi(s);
}while(menu<0 || menu>9);
switch(menu){
case(1):
introducir();
break;
case(2):
r=encontrar();
desplegar(r);
break;
case(3):
r=encontrar();
actualizar(r);
break;
case(4):
r=encontrar();
eliminar(r);
break;
case(5):
listar();
break;
case(6):
guardar();
break;
case(7):
recuperar();
break;
case(8):
puts("Fin del programa...");
break;
}
}while(menu!=8);
return(0);
}
#include<stdio.h>
#include<stdlib.h>
#define max 5
struct stemas{
char tema[100];
char desc[890];
}arreglot[max];
//struct stemas arreglot[max];
void inicializar(){
int i;
for(i=0; i<max; i++){
*arreglot[i].tema='\0';
}
}
void recuperar(){
FILE *fp;
int i;
if((fp=fopen("temas1","rb")) == NULL){
printf("No se abre archivo temas1...\n");
return;
}
inicializar();
for(i=0;i<max;i++)
if(fread(&arreglot[i],sizeof(struct stemas),1,fp) != 1){
if(feof(fp)){
printf("Archivo recuperado...\n");
fclose(fp);
return;
}
printf("Error de lectura...\n");
}
printf("Archivo recuperado...\n");
}
void guardar(){
int i;
FILE *fp;
if((fp=fopen("temas1","wb"))==NULL){
printf("No se abre archivo temas1...\n");
return;
}
for(i=0;i<max;i++){
if(*arreglot[i].tema)
if(fwrite(&arreglot[i],sizeof(struct stemas),1,fp) !=1)
printf("Error de escritura...");
}
printf("Archivo guardado...\n");
fclose(fp);
}
void listar(void){
int i;
for(i=0;i<max;i++){
printf("Tema: %s\n",arreglot[i].tema);
printf("Desc: %s\n",arreglot[i].desc);
}
}
void eliminar(int nt){
if(nt != -1){
*arreglot[nt].tema = '\0';
*arreglot[nt].desc = '\0';
puts("Tema y Descripción eliminados...");
}
}
void actualizar(nt){
int r;
char t1[100];
char t2[900];
r = nt;
printf("Reg: %d\n",r);
if(r != -1){
puts("\nIntroduce tema, max. 100 caracteres: ");
gets(t1);
if(strlen(t1)>100){
printf("\nTema %d > 100 caracteres...\n",strlen(t1));
printf("Repite 1.Introducir Tema...\n");
}else{
strcpy(arreglot[r].tema,t1);
puts("\nIntroduce .desc, max 900 caracteres: ");
gets(t2);
if(strlen(t2)>900){
printf("\nDescripción %d > 900 caracteres...\n",strlen(t2));
printf("Repite 1.Introducir Tema...\n");
*arreglot[r].tema = '\0';
}else{
strcpy(arreglot[r].desc,t2);
}
}
}
}
void desplegar(int nt){
//int nt;
if(nt != -1){
printf("\nTema:%s \nDescripción: %s\n",arreglot[nt].tema,arreglot[nt].desc);
}
}
int encontrar(){
char s[20];
int r;
printf("Introduce tema:\n");
gets(s);
for(r=0;r<5;r++){
if(!strcmp(s,arreglot[r].tema)) break;
}
if(r==5){
printf("tema no esta...\n");
return(-1);
}
return r;
}
void entras(char *promp, char *s, int num){
char c[100];
do{
printf("%s",promp);
gets(c);
if(strlen(c)>=num)
printf("\nDemasiado largo...\n");
}while(strlen(c)>=num);
strcpy(s,c);
}
void introducir(void){
int i;
do{
for(i=0;i<max;i++){
if(!*arreglot[i].tema) break;
}
//i=0;
printf("Reg: %d\n",i);
if(i>=max){
printf("Arreglo de temas max...");
break;
}else{
puts("\nTerminar con linea en blanco...");
//puts("Introduce tema");
//gets(arreglot[i].tema);
entras("Introduce tema: \n",arreglot[i].tema,100);
if(!*arreglot[i].tema) break;
//puts("Introduce desc");
//gets(arreglot[i].desc);
entras("Introduce descripcion: \n",arreglot[i].desc,900);
if(!*arreglot[i].desc){
*arreglot[i].tema='\0';
break;
}
}
}while(1);
}
int main(void){
int menu,r;
char s[80];
inicializar();
do{
printf("\n\t\tMENU \n");
printf("1 Introducir Tema \n");
printf("2 Desplegar Tema \n");
printf("3 Actualizar Tema \n");
printf("4 Eliminar Tema \n");
printf("5 Listar Temas \n");
printf("6 Guardar Temas \n");
printf("7 Recuperar Temas \n");
printf("8 Terminar \n");
do{
printf("Selecciona opcion:");
gets(s);
menu=atoi(s);
}while(menu<0 || menu>9);
switch(menu){
case(1):
introducir();
break;
case(2):
r=encontrar();
desplegar(r);
break;
case(3):
r=encontrar();
actualizar(r);
break;
case(4):
r=encontrar();
eliminar(r);
break;
case(5):
listar();
break;
case(6):
guardar();
break;
case(7):
recuperar();
break;
case(8):
puts("Fin del programa...");
break;
}
}while(menu!=8);
return(0);
}
miércoles, 29 de enero de 2014
Programación android con CCTools y C-pc18
Pc18-Programa con arreglo de caracteres y
archivos.

#include<stdio.h>
#include<string.h>
char tema[100];
char desc[500];
void inic(void){
int t;
for(t=0;t<100;t++){
tema[t]='\0';
}
for(t=0;t<500;t++){
desc[t]='\0';
}
}
void introducir(void){
int r;
char t1[100];
char t2[200];
for(r=0;r<5;r++){
if(!tema[r*20]) break;
}
if(r==5){
printf("Lista de temas completa...");
}else{
printf("Reg: %d\n",r);
puts("\nIntroduce tema, max. 20 caracteres: ");
gets(t1);
if(strlen(t1)>20){
printf("\nTema %d > 20 caracteres...\n",strlen(t1));
printf("Repite 1.Introducir Tema...\n");
}else{
strcpy(&tema[r*20],t1);
//gets(&tema[r*20]);
puts("\nIntroduce desc, max 100 caracteres: ");
gets(t2);
if(strlen(t2)>100){
printf("\nDescripción %d > 100 caracteres...\n",strlen(t2));
printf("Repite 1.Introducir Tema...\n");
tema[r*20] = '\0';
}else{
strcpy(&desc[r*100],t2);
}
}
}
}
int encontrar(){
char s[20];
int r;
printf("Introduce tema:\n");
gets(s);
for(r=0;r<5;r++){
if(!strcmp(s,&tema[r*20])) break;
}
if(r==5){
printf("tema no esta...\n");
return(-1);
}
return r;
}
void desplegar(int nt){
//int nt;
printf("\nTema:%s \nDescripción: %s\n",&tema[nt*20],&desc[nt*100]);
}
void actualizar(int nt){
int r;
char t1[100];
char t2[200];
r = nt;
printf("Reg: %d\n",r);
puts("\nIntroduce tema, max. 20 caracteres: ");
gets(t1);
if(strlen(t1)>20){
printf("\nTema %d > 20 caracteres...\n",strlen(t1));
printf("Repite 1.Introducir Tema...\n");
}else{
strcpy(&tema[r*20],t1);
puts("\nIntroduce desc, max 100 caracteres: ");
gets(t2);
if(strlen(t2)>100){
printf("\nDescripción %d > 100 caracteres...\n",strlen(t2));
printf("Repite 1.Introducir Tema...\n");
tema[r*20] = '\0';
}else{
strcpy(&desc[r*100],t2);
}
}
}
void eliminar(int nt){
tema[nt*20] = '\0';
desc[nt*100] = '\0';
puts("Tema y Descripción eliminados: ");
}
void listar(void){
int r;
for(r=0;r<5;r++){
printf("\nTema:%s \nDescripción: %s\n",&tema[r*20],&desc[r*100]);
}
}
void guardar(void){
int i;
FILE *fp;
if((fp=fopen("temas.txt","w")) == 0){
puts("No se puede abrir temas");
}else{
for(i=0;i<100;i++){
putc(tema[i],fp);
}
for(i=0;i<500;i++){
putc(desc[i],fp);
}
fclose(fp);
}
}
void recuperar(void){
int i;
FILE *fp;
if((fp=fopen("temas.txt","r")) == 0){
puts("No se puede abrir temas");
}else{
puts("Recuperando Tema...\n");
for(i=0;i<100;i++){
tema[i] = getc(fp);
}
puts("Recuperando Desc...");
for(i=0;i<500;i++){
desc[i] = getc(fp);
}
fclose(fp);
}
}
int main(void){
char ca;
int nt;
inic();
//introducir();
do{
printf("\n\t\tMENU");
printf("\n1.Introducir Tema\n");
printf("2.Desplegar Tema\n");
printf("3.Actualizar Tema\n");
printf("4.Eliminar Tema\n");
printf("5.Listar Temas\n");
printf("6.Guardar Temas\n");
printf("7.Recuperar Temas\n");
printf("8.Terminar \n");
do{
printf("Seleccionar Opción: ");
//ca=getchar();
gets(&ca);
}while(ca<'1' || ca>'8');
printf("\n");
switch(ca){
case'1':
introducir();
//listar();
break;
case'2':
nt=encontrar();
if(nt!=-1) desplegar(nt);
break;
case'3':
nt=encontrar();
if(nt!=-1) actualizar(nt);
break;
case'4':
nt=encontrar();
if(nt!=-1) eliminar(nt);
break;
case'5':
listar();
break;
case'6':
guardar();
break;
case'7':
recuperar();
break;
case'8':
printf("Fin del programa...");
return(0);
}
}while(ca!='8');
return(0);
}
archivos.

#include<stdio.h>
#include<string.h>
char tema[100];
char desc[500];
void inic(void){
int t;
for(t=0;t<100;t++){
tema[t]='\0';
}
for(t=0;t<500;t++){
desc[t]='\0';
}
}
void introducir(void){
int r;
char t1[100];
char t2[200];
for(r=0;r<5;r++){
if(!tema[r*20]) break;
}
if(r==5){
printf("Lista de temas completa...");
}else{
printf("Reg: %d\n",r);
puts("\nIntroduce tema, max. 20 caracteres: ");
gets(t1);
if(strlen(t1)>20){
printf("\nTema %d > 20 caracteres...\n",strlen(t1));
printf("Repite 1.Introducir Tema...\n");
}else{
strcpy(&tema[r*20],t1);
//gets(&tema[r*20]);
puts("\nIntroduce desc, max 100 caracteres: ");
gets(t2);
if(strlen(t2)>100){
printf("\nDescripción %d > 100 caracteres...\n",strlen(t2));
printf("Repite 1.Introducir Tema...\n");
tema[r*20] = '\0';
}else{
strcpy(&desc[r*100],t2);
}
}
}
}
int encontrar(){
char s[20];
int r;
printf("Introduce tema:\n");
gets(s);
for(r=0;r<5;r++){
if(!strcmp(s,&tema[r*20])) break;
}
if(r==5){
printf("tema no esta...\n");
return(-1);
}
return r;
}
void desplegar(int nt){
//int nt;
printf("\nTema:%s \nDescripción: %s\n",&tema[nt*20],&desc[nt*100]);
}
void actualizar(int nt){
int r;
char t1[100];
char t2[200];
r = nt;
printf("Reg: %d\n",r);
puts("\nIntroduce tema, max. 20 caracteres: ");
gets(t1);
if(strlen(t1)>20){
printf("\nTema %d > 20 caracteres...\n",strlen(t1));
printf("Repite 1.Introducir Tema...\n");
}else{
strcpy(&tema[r*20],t1);
puts("\nIntroduce desc, max 100 caracteres: ");
gets(t2);
if(strlen(t2)>100){
printf("\nDescripción %d > 100 caracteres...\n",strlen(t2));
printf("Repite 1.Introducir Tema...\n");
tema[r*20] = '\0';
}else{
strcpy(&desc[r*100],t2);
}
}
}
void eliminar(int nt){
tema[nt*20] = '\0';
desc[nt*100] = '\0';
puts("Tema y Descripción eliminados: ");
}
void listar(void){
int r;
for(r=0;r<5;r++){
printf("\nTema:%s \nDescripción: %s\n",&tema[r*20],&desc[r*100]);
}
}
void guardar(void){
int i;
FILE *fp;
if((fp=fopen("temas.txt","w")) == 0){
puts("No se puede abrir temas");
}else{
for(i=0;i<100;i++){
putc(tema[i],fp);
}
for(i=0;i<500;i++){
putc(desc[i],fp);
}
fclose(fp);
}
}
void recuperar(void){
int i;
FILE *fp;
if((fp=fopen("temas.txt","r")) == 0){
puts("No se puede abrir temas");
}else{
puts("Recuperando Tema...\n");
for(i=0;i<100;i++){
tema[i] = getc(fp);
}
puts("Recuperando Desc...");
for(i=0;i<500;i++){
desc[i] = getc(fp);
}
fclose(fp);
}
}
int main(void){
char ca;
int nt;
inic();
//introducir();
do{
printf("\n\t\tMENU");
printf("\n1.Introducir Tema\n");
printf("2.Desplegar Tema\n");
printf("3.Actualizar Tema\n");
printf("4.Eliminar Tema\n");
printf("5.Listar Temas\n");
printf("6.Guardar Temas\n");
printf("7.Recuperar Temas\n");
printf("8.Terminar \n");
do{
printf("Seleccionar Opción: ");
//ca=getchar();
gets(&ca);
}while(ca<'1' || ca>'8');
printf("\n");
switch(ca){
case'1':
introducir();
//listar();
break;
case'2':
nt=encontrar();
if(nt!=-1) desplegar(nt);
break;
case'3':
nt=encontrar();
if(nt!=-1) actualizar(nt);
break;
case'4':
nt=encontrar();
if(nt!=-1) eliminar(nt);
break;
case'5':
listar();
break;
case'6':
guardar();
break;
case'7':
recuperar();
break;
case'8':
printf("Fin del programa...");
return(0);
}
}while(ca!='8');
return(0);
}
Programación android con CCTools y C-pc17
Pc17-Programa con arreglo de caracteres
#include<stdio.h>
#include<string.h>
char tema[100];
char desc[500];
void inic(void){
int t;
for(t=0;t<100;t++){
tema[t]='\0';
}
for(t=0;t<500;t++){
desc[t]='\0';
}
}
void introducir(void){
int r;
char t1[100];
char t2[200];
for(r=0;r<5;r++){
if(!tema[r*20]) break;
}
if(r==5){
printf("Lista de temas completa...");
}else{
printf("Reg: %d\n",r);
puts("\nIntroduce tema, max. 20 caracteres: ");
gets(t1);
if(strlen(t1)>20){
printf("\nTema %d > 20 caracteres...\n",strlen(t1));
printf("Repite 1.Introducir Tema...\n");
}else{
strcpy(&tema[r*20],t1);
//gets(&tema[r*20]);
puts("\nIntroduce desc, max 100 caracteres: ");
gets(t2);
if(strlen(t2)>100){
printf("\nDescripción %d > 100 caracteres...\n",strlen(t2));
printf("Repite 1.Introducir Tema...\n");
tema[r*20] = '\0';
}else{
strcpy(&desc[r*100],t2);
}
}
}
}
int encontrar(){
char s[20];
int r;
printf("Introduce tema:\n");
gets(s);
for(r=0;r<5;r++){
if(!strcmp(s,&tema[r*20])) break;
}
if(r==5){
printf("tema no esta...\n");
return(-1);
}
return r;
}
void desplegar(int nt){
//int nt;
printf("\nTema:%s \nDescripción: %s\n",&tema[nt*20],&desc[nt*100]);
}
void actualizar(int nt){
int r;
char t1[100];
char t2[200];
r = nt;
printf("Reg: %d\n",r);
puts("\nIntroduce tema, max. 20 caracteres: ");
gets(t1);
if(strlen(t1)>20){
printf("\nTema %d > 20 caracteres...\n",strlen(t1));
printf("Repite 1.Introducir Tema...\n");
}else{
strcpy(&tema[r*20],t1);
puts("\nIntroduce desc, max 100 caracteres: ");
gets(t2);
if(strlen(t2)>100){
printf("\nDescripción %d > 100 caracteres...\n",strlen(t2));
printf("Repite 1.Introducir Tema...\n");
tema[r*20] = '\0';
}else{
strcpy(&desc[r*100],t2);
}
}
}
void eliminar(int nt){
tema[nt*20] = '\0';
desc[nt*100] = '\0';
puts("Tema y Descripción eliminados: ");
}
void listar(void){
int r;
for(r=0;r<5;r++){
printf("\nTema:%s \nDescripción: %s\n",&tema[r*20],&desc[r*100]);
}
}
int main(void){
char ca;
int nt;
inic();
//introducir();
do{
printf("\nMenu: \n");
printf("\n1.Introducir Tema\n");
printf("2.Desplegar Tema\n");
printf("3.Actualizar Tema\n");
printf("4.Eliminar Tema\n");
printf("5.Listar Temas\n");
printf("6.Terminar Tema\n");
do{
printf("Seleccionar Opción: ");
//ca=getchar();
gets(&ca);
}while(ca<'1' || ca>'6');
printf("\n");
switch(ca){
case'1':
introducir();
//listar();
break;
case'2':
nt=encontrar();
if(nt!=-1) desplegar(nt);
break;
case'3':
nt=encontrar();
if(nt!=-1) actualizar(nt);
break;
case'4':
nt=encontrar();
if(nt!=-1) eliminar(nt);
break;
case'5':
listar();
break;
case'6':
printf("Fin del programa...");
return(0);
}
}while(ca!='6');
return(0);
}
#include<stdio.h>
#include<string.h>
char tema[100];
char desc[500];
void inic(void){
int t;
for(t=0;t<100;t++){
tema[t]='\0';
}
for(t=0;t<500;t++){
desc[t]='\0';
}
}
void introducir(void){
int r;
char t1[100];
char t2[200];
for(r=0;r<5;r++){
if(!tema[r*20]) break;
}
if(r==5){
printf("Lista de temas completa...");
}else{
printf("Reg: %d\n",r);
puts("\nIntroduce tema, max. 20 caracteres: ");
gets(t1);
if(strlen(t1)>20){
printf("\nTema %d > 20 caracteres...\n",strlen(t1));
printf("Repite 1.Introducir Tema...\n");
}else{
strcpy(&tema[r*20],t1);
//gets(&tema[r*20]);
puts("\nIntroduce desc, max 100 caracteres: ");
gets(t2);
if(strlen(t2)>100){
printf("\nDescripción %d > 100 caracteres...\n",strlen(t2));
printf("Repite 1.Introducir Tema...\n");
tema[r*20] = '\0';
}else{
strcpy(&desc[r*100],t2);
}
}
}
}
int encontrar(){
char s[20];
int r;
printf("Introduce tema:\n");
gets(s);
for(r=0;r<5;r++){
if(!strcmp(s,&tema[r*20])) break;
}
if(r==5){
printf("tema no esta...\n");
return(-1);
}
return r;
}
void desplegar(int nt){
//int nt;
printf("\nTema:%s \nDescripción: %s\n",&tema[nt*20],&desc[nt*100]);
}
void actualizar(int nt){
int r;
char t1[100];
char t2[200];
r = nt;
printf("Reg: %d\n",r);
puts("\nIntroduce tema, max. 20 caracteres: ");
gets(t1);
if(strlen(t1)>20){
printf("\nTema %d > 20 caracteres...\n",strlen(t1));
printf("Repite 1.Introducir Tema...\n");
}else{
strcpy(&tema[r*20],t1);
puts("\nIntroduce desc, max 100 caracteres: ");
gets(t2);
if(strlen(t2)>100){
printf("\nDescripción %d > 100 caracteres...\n",strlen(t2));
printf("Repite 1.Introducir Tema...\n");
tema[r*20] = '\0';
}else{
strcpy(&desc[r*100],t2);
}
}
}
void eliminar(int nt){
tema[nt*20] = '\0';
desc[nt*100] = '\0';
puts("Tema y Descripción eliminados: ");
}
void listar(void){
int r;
for(r=0;r<5;r++){
printf("\nTema:%s \nDescripción: %s\n",&tema[r*20],&desc[r*100]);
}
}
int main(void){
char ca;
int nt;
inic();
//introducir();
do{
printf("\nMenu: \n");
printf("\n1.Introducir Tema\n");
printf("2.Desplegar Tema\n");
printf("3.Actualizar Tema\n");
printf("4.Eliminar Tema\n");
printf("5.Listar Temas\n");
printf("6.Terminar Tema\n");
do{
printf("Seleccionar Opción: ");
//ca=getchar();
gets(&ca);
}while(ca<'1' || ca>'6');
printf("\n");
switch(ca){
case'1':
introducir();
//listar();
break;
case'2':
nt=encontrar();
if(nt!=-1) desplegar(nt);
break;
case'3':
nt=encontrar();
if(nt!=-1) actualizar(nt);
break;
case'4':
nt=encontrar();
if(nt!=-1) eliminar(nt);
break;
case'5':
listar();
break;
case'6':
printf("Fin del programa...");
return(0);
}
}while(ca!='6');
return(0);
}
Programación android con CCTools y C - pc16
Pc16-Arreglo de caracteres y
memoria dinámica

#include<stdio.h>
#include<stdlib.h>
int main(void){
char nombre[20];
char tema[100];
char desc[200];
int i;
struct xtemas{
char tema1[50];
char desc1[100];
}temasx[2];
//ESTRUCTURAS Y ARREGLOS DE CARACTERES
//arreglo de caracteres nombre
printf("\nIntroducir nombre: ");
gets(nombre);
printf("Hola %s\n",nombre);
//arreglo de caracteres tema
printf("\nSolo un tema: \n");
printf("\nIntroducir tema: ");
gets(tema);
printf("Tema %s\n",tema);
//arreglo de caract. tema
printf("\nVarios temas: \n");
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(&tema[i*50]);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",&tema[i*50]);
}
//arreglo de caract. tema y desc
printf("\nVarios temas con descripcion: \n");
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(&tema[i*50]);
printf("\nIntroducir desc: ");
gets(&desc[i*100]);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",&tema[i*50]);
printf("Desc: %s\n",&desc[i*100]);
}
//structura de xtemas
printf("\nVarios temas con descripcion: \n");
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(temasx[i].tema1);
printf("\nIntroducir desc: ");
gets(temasx[i].desc1);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",temasx[i].tema1);
printf("Desc: %s\n",temasx[i].desc1);
}
//PUNTEROS Y MEM DINAMICA DE CARACTERES
//Puntero de una variable entera
int j,*k,l;
j=23; // j-1024-0023
k=&j; // k-1028-1024
l=*k; // l-1032-0023
printf("\nValor de l= %d\n",l);
//Variable nombre2 como puntero
char *nombre2;
nombre2 = malloc(10);
printf("\nIntroducir nombre: ");
gets(nombre2);
printf("Hola %s\n",nombre2);
//arreglo de caracteres tema2
char *tema2;
tema2 = malloc(100);
printf("\nSolo un tema: \n");
printf("\nIntroducir tema: ");
gets(tema2);
printf("Tema %s\n",tema2);
free(tema2);
//arreglo de caract. tema2
printf("\nVarios temas: \n");
tema2 = malloc(100);
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(&tema2[i*50]);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",&tema2[i*50]);
}
free(tema2);
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",&tema2[i*50]);
}
//arreglo de caract. tema y desc
//char *tema2;
char *desc2;
printf("\nVarios temas con descripcion: \n");
tema2 = malloc(100);
desc2 = malloc(200);
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(&tema2[i*50]);
printf("\nIntroducir desc: ");
gets(&desc2[i*100]);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",&tema2[i*50]);
printf("Desc: %s\n",&desc2[i*100]);
}
free(tema2);
free(desc2);
//structura de ytemas
struct ytemas{
char tema2[50];
char desc2[100];
};
struct ytemas *temasy;
printf("\nVarios temas con descripcion: \n");
temasy = malloc(300);
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(temasy[i].tema2);
printf("\nIntroducir desc: ");
gets(temasy[i].desc2);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",temasy[i].tema2);
printf("Desc: %s\n",temasy[i].desc2);
}
free(temasy);
return 0;
}
memoria dinámica

#include<stdio.h>
#include<stdlib.h>
int main(void){
char nombre[20];
char tema[100];
char desc[200];
int i;
struct xtemas{
char tema1[50];
char desc1[100];
}temasx[2];
//ESTRUCTURAS Y ARREGLOS DE CARACTERES
//arreglo de caracteres nombre
printf("\nIntroducir nombre: ");
gets(nombre);
printf("Hola %s\n",nombre);
//arreglo de caracteres tema
printf("\nSolo un tema: \n");
printf("\nIntroducir tema: ");
gets(tema);
printf("Tema %s\n",tema);
//arreglo de caract. tema
printf("\nVarios temas: \n");
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(&tema[i*50]);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",&tema[i*50]);
}
//arreglo de caract. tema y desc
printf("\nVarios temas con descripcion: \n");
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(&tema[i*50]);
printf("\nIntroducir desc: ");
gets(&desc[i*100]);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",&tema[i*50]);
printf("Desc: %s\n",&desc[i*100]);
}
//structura de xtemas
printf("\nVarios temas con descripcion: \n");
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(temasx[i].tema1);
printf("\nIntroducir desc: ");
gets(temasx[i].desc1);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",temasx[i].tema1);
printf("Desc: %s\n",temasx[i].desc1);
}
//PUNTEROS Y MEM DINAMICA DE CARACTERES
//Puntero de una variable entera
int j,*k,l;
j=23; // j-1024-0023
k=&j; // k-1028-1024
l=*k; // l-1032-0023
printf("\nValor de l= %d\n",l);
//Variable nombre2 como puntero
char *nombre2;
nombre2 = malloc(10);
printf("\nIntroducir nombre: ");
gets(nombre2);
printf("Hola %s\n",nombre2);
//arreglo de caracteres tema2
char *tema2;
tema2 = malloc(100);
printf("\nSolo un tema: \n");
printf("\nIntroducir tema: ");
gets(tema2);
printf("Tema %s\n",tema2);
free(tema2);
//arreglo de caract. tema2
printf("\nVarios temas: \n");
tema2 = malloc(100);
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(&tema2[i*50]);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",&tema2[i*50]);
}
free(tema2);
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",&tema2[i*50]);
}
//arreglo de caract. tema y desc
//char *tema2;
char *desc2;
printf("\nVarios temas con descripcion: \n");
tema2 = malloc(100);
desc2 = malloc(200);
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(&tema2[i*50]);
printf("\nIntroducir desc: ");
gets(&desc2[i*100]);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",&tema2[i*50]);
printf("Desc: %s\n",&desc2[i*100]);
}
free(tema2);
free(desc2);
//structura de ytemas
struct ytemas{
char tema2[50];
char desc2[100];
};
struct ytemas *temasy;
printf("\nVarios temas con descripcion: \n");
temasy = malloc(300);
for(i=0; i<2; i++){
printf("\nIntroducir tema: ");
gets(temasy[i].tema2);
printf("\nIntroducir desc: ");
gets(temasy[i].desc2);
}
printf("\nLista de temas: \n");
for(i=0; i<2; i++){
printf("Tema: %s\n",temasy[i].tema2);
printf("Desc: %s\n",temasy[i].desc2);
}
free(temasy);
return 0;
}
sábado, 21 de diciembre de 2013
Programación android con CCTools y C - pc15_Calc7
Ver video: pc15-Calc7
/*pc15-Calculadora de operaciones
matemáticas y trigonométricas
con datos decimales introducidos por
con teclado de pantalla son validados
y llama las funciones y retornar
un valor a la función principal main*/
/*Ver pc02 y seguir los procedimientos
de introducir el programa con el editor de
CCTools, guardalo con save como pc15.c,
compilar con run, si hay errores corregirlos
en el editor, hasta que se ejecute bien y se
obtengan los resultados deseados*/
/*Operación con funciones matemáticas
como la Raíz cuadrada y trigonométricas,
ebe incluirse la librería math.h y
compilarse con build y aparece un
ventana de compile source file
en arguments poner -lm y activar
build ejecutable y run, aparece
otra ventana de ejecute file y pide
line arguments que no se pone nada
y se continua la ejecución*/
/*Un programa en C primero debe
incluir librerías que usara el
programa*/
#include<stdio.h>
#include<math.h>
/*En C se puede crear nombres
constantes con define que son
sustituidos por su valor en el
programa*/
#define DOSMILLONES 2000000.00
#define MENOSDOSMILLONES -2000000.00
/*Un programa en C esta constituido
por funciones que son llamadas por
la función main o principal*/
/*Función de suma fsuma recibe de
main los decimaled float v1, v2 y
realiza la operación aritmética de
suma, y retorna un resultado
decimal int r1 a la función main*/
float fsuma(float v1, float v2){
float r1;
r1=v1+v2;
return r1;
}
/*Función de resta fresta recibe de
main los decimales float v1, v2 y
realiza la operación aritmética de
resta y retorna un resultado
decimal float r1 a la función main*/
float fresta(float v1, float v2){
float r1;
r1=v1-v2;
return r1;
}
/*Función de multiplica fmultiplica recibe de
main los decimales float v1, v2 y
realiza la operación aritmética de
multiplica y retorna un resultado
decimal float r1 a la función main*/
float fmultiplica(float v1, float v2){
float r1;
r1=v1*v2;
return r1;
}
/*Función de divide fdivide recibe de
main los decimales float v1, v2 y
realiza la operación aritmética de
divide y retorna un resultado
decimal float r1 a la función main*/
float fdivide(float v1, float v2){
float r1;
r1=v1/v2;
return r1;
}
/*Función de resto fresto recibe de
main los enteros int v1, v2 y
realiza la operación aritmética de
resto y retorna un resultado
entero int r1 a la función main*/
int fresto(int v1, int v2){
int r1;
r1=v1%v2;
return r1;
}
/*Un programa en C esta constituido
por funciones, una debe ser main y
llamara a las funciones anteriores y sera
el punto de entrada al ejecutarse el programa*/
int main(){
/*Una función como main es una secuencia de
instrucciones que realiza operaciones
con datos. Primero debe definirse los datos asignando
una variable con un nombre y un valor inicial de 0, como
dato1, dato2 y su tipo de datos decimales float*/
float dato1=0,dato2=0,tot=0;
int dato3=0,operacion=0;
float adato4[100];
float dato5=0;
int i,j,k;
do{
printf("\nCalculadora Matemática \n");
printf("Selecciona Operación: \n");
printf("0-FIN \n");
printf("1-Aritmética \n");
printf("2-Trigonométrica \n\n");
printf("Introduce Operación: ");
scanf("%d",&operacion);
if(operacion==0){
printf("Fin de Calcular: \n");
break;
}
if((operacion<0) || (operacion>2)){
printf("Operación Inválida \n");
continue;
}
if(operacion==1){
//Indice j=0 de arreglo adato4
j=0;
//Limpiamos adato4
for(i=0; i<100; i++){
adato4[i] = '\0';
}
/*Asignamos un min. y max a los decimales
permitidos*/
float imin = MENOSDOSMILLONES;
float imax = DOSMILLONES;
/*Desplegamos el decimal float máximo y minimo
permitido*/
printf("Decimal Max Permitido: %.2f \n",imax);
printf("Decimal Min Permitido: %.2f \n",imin);
/*Desplegamos que se introduzcan
los datos por la pantalla*/
printf("Introduce dato decimal: ");
scanf("%f",&dato1);
/*Utilizamos la instrucción de decisión y
repetición while para probar dos condiciones de los
valores del dato introducido si son
permitidos, si alguna o las dos se cumplen,
se despliega fuera de rango, se
repite pedir e introducir de nuevo el dato*/
while((dato1>=imax) || (dato1<=imin)){
printf("Dato fuera de rango permitido \n");
printf("Introduce dato decimal: ");
scanf("%f",&dato1);
}
printf("Subtotal= %.2f \n",dato1);
do{
printf("\nCalculadora Decimal \n");
printf("Selecciona Operación: \n");
printf("0-FIN \n");
printf("1-Suma \n");
printf("2-Resta \n");
printf("3-Multiplica \n");
printf("4-Divide \n");
printf("5-Raíz cuadrada \n\n");
printf("Introduce Operación: ");
scanf("%d",&operacion);
if(operacion==0){
printf("Fin de Calcular: \n");
break;
}
if((operacion<0) || (operacion>5)){
printf("Operación Inválida \n");
continue;
}
printf("Introduce dato decimal: ");
scanf("%f",&dato2);
/*Utilizamos la instrucción de decisión y
repetición while para probar dos condiciones
de los valores del dato introducido si son
permitidos, si alguna o las dos se cumplen,
se despliega fuera de rango, se
repite pedir e introducir de nuevo el
dato*/
while((dato2>=imax) || (dato2<=imin)){
printf("Dato fuera de rango permitido \n");
printf("Introduce dato decimal: ");
scanf("%f",&dato2);
}
switch(operacion){
case(1):
/*Operación suma*/
dato1=(dato1+dato2);
break;
case(2):
/*Operación resta*/
dato1=(dato1-dato2);
break;
case(3):
/*Operación multiplica*/
dato1=(dato1*dato2);
break;
case(4):
/*Operación divide*/
dato1=(dato1/dato2);
break;
case(5):
/*Operación raíz cuadrada*/
dato1=sqrt(dato2+dato1);
break;
}//switch
if(j<100){
adato4[j] = dato1;
}else{
printf("Arreglo de datos lleno...");
}
j++;
/*Subtotal de cada operación*/
printf("Subtotal= %.2f \n",dato1);
//Sumamos dato1 a dato3
tot = tot + dato1;
}while((operacion>=0)||(operacion<=4));
k=0;
dato5=0;
printf("\nArreglo de datos\n");
for(i=0;i<100;i++){
if(!adato4[i]) continue;
k++;
dato5 = dato5 + adato4[i];
printf("Dato: %.2f\n",adato4[i]);
}
/*Total de todas las operaciones*/
printf("Total= %.2f\n",tot);
tot = 0;
printf("Promedio: %.2f\n",dato5/k);
}//Fin op arit.
if(operacion==2){
do{
printf("\nCalculadora Trigonométrica \n");
printf("Selecciona Operación: \n");
printf("0-FIN \n");
printf("1-Coseno \n");
printf("2-Seno \n");
printf("3-Tangente \n\n");
printf("Introduce Operación: ");
scanf("%d",&operacion);
if(operacion==0){
printf("Fin de Calcular: \n");
break;
}
if((operacion<0) || (operacion>3)){
printf("Operación Inválida \n");
continue;
}
dato1=0;
printf("Introduce grados en decimal: ");
scanf("%f",&dato2);
/*Operación Coseno*/
if(operacion==1){
dato3=dato2;
//Convierte grados a radianes
dato2= dato2*(3.142/180.0);
printf("Cos(%d)Grados = %f \n",dato3,cos(dato2));
}
/*Operación Seno*/
if(operacion==2){
dato3=dato2;
//Convierte grados a radianes
dato2= dato2*(3.142/180.0);
printf("Sen(%d)Grados = %f \n",dato3,sin(dato2));
}
/*Operación Tangente*/
if(operacion==3){
dato3=dato2;
//Convierte grados a radianes
dato2= dato2*(3.142/180.0);
printf("Tan(%d)Grados = %f \n",dato3,tan(dato2));
}
}while((operacion>=0)||(operacion<=3));
}//Fin op. trigonométricas
}while((operacion>=0)||(operacion<=2));
//Fin de calculadora matemática
/*La función main debe tener un retorno
de 0 errores al sistema operativo*/
return 0;
}
/*pc15-Calculadora de operaciones
matemáticas y trigonométricas
con datos decimales introducidos por
con teclado de pantalla son validados
y llama las funciones y retornar
un valor a la función principal main*/
/*Ver pc02 y seguir los procedimientos
de introducir el programa con el editor de
CCTools, guardalo con save como pc15.c,
compilar con run, si hay errores corregirlos
en el editor, hasta que se ejecute bien y se
obtengan los resultados deseados*/
/*Operación con funciones matemáticas
como la Raíz cuadrada y trigonométricas,
ebe incluirse la librería math.h y
compilarse con build y aparece un
ventana de compile source file
en arguments poner -lm y activar
build ejecutable y run, aparece
otra ventana de ejecute file y pide
line arguments que no se pone nada
y se continua la ejecución*/
/*Un programa en C primero debe
incluir librerías que usara el
programa*/
#include<stdio.h>
#include<math.h>
/*En C se puede crear nombres
constantes con define que son
sustituidos por su valor en el
programa*/
#define DOSMILLONES 2000000.00
#define MENOSDOSMILLONES -2000000.00
/*Un programa en C esta constituido
por funciones que son llamadas por
la función main o principal*/
/*Función de suma fsuma recibe de
main los decimaled float v1, v2 y
realiza la operación aritmética de
suma, y retorna un resultado
decimal int r1 a la función main*/
float fsuma(float v1, float v2){
float r1;
r1=v1+v2;
return r1;
}
/*Función de resta fresta recibe de
main los decimales float v1, v2 y
realiza la operación aritmética de
resta y retorna un resultado
decimal float r1 a la función main*/
float fresta(float v1, float v2){
float r1;
r1=v1-v2;
return r1;
}
/*Función de multiplica fmultiplica recibe de
main los decimales float v1, v2 y
realiza la operación aritmética de
multiplica y retorna un resultado
decimal float r1 a la función main*/
float fmultiplica(float v1, float v2){
float r1;
r1=v1*v2;
return r1;
}
/*Función de divide fdivide recibe de
main los decimales float v1, v2 y
realiza la operación aritmética de
divide y retorna un resultado
decimal float r1 a la función main*/
float fdivide(float v1, float v2){
float r1;
r1=v1/v2;
return r1;
}
/*Función de resto fresto recibe de
main los enteros int v1, v2 y
realiza la operación aritmética de
resto y retorna un resultado
entero int r1 a la función main*/
int fresto(int v1, int v2){
int r1;
r1=v1%v2;
return r1;
}
/*Un programa en C esta constituido
por funciones, una debe ser main y
llamara a las funciones anteriores y sera
el punto de entrada al ejecutarse el programa*/
int main(){
/*Una función como main es una secuencia de
instrucciones que realiza operaciones
con datos. Primero debe definirse los datos asignando
una variable con un nombre y un valor inicial de 0, como
dato1, dato2 y su tipo de datos decimales float*/
float dato1=0,dato2=0,tot=0;
int dato3=0,operacion=0;
float adato4[100];
float dato5=0;
int i,j,k;
do{
printf("\nCalculadora Matemática \n");
printf("Selecciona Operación: \n");
printf("0-FIN \n");
printf("1-Aritmética \n");
printf("2-Trigonométrica \n\n");
printf("Introduce Operación: ");
scanf("%d",&operacion);
if(operacion==0){
printf("Fin de Calcular: \n");
break;
}
if((operacion<0) || (operacion>2)){
printf("Operación Inválida \n");
continue;
}
if(operacion==1){
//Indice j=0 de arreglo adato4
j=0;
//Limpiamos adato4
for(i=0; i<100; i++){
adato4[i] = '\0';
}
/*Asignamos un min. y max a los decimales
permitidos*/
float imin = MENOSDOSMILLONES;
float imax = DOSMILLONES;
/*Desplegamos el decimal float máximo y minimo
permitido*/
printf("Decimal Max Permitido: %.2f \n",imax);
printf("Decimal Min Permitido: %.2f \n",imin);
/*Desplegamos que se introduzcan
los datos por la pantalla*/
printf("Introduce dato decimal: ");
scanf("%f",&dato1);
/*Utilizamos la instrucción de decisión y
repetición while para probar dos condiciones de los
valores del dato introducido si son
permitidos, si alguna o las dos se cumplen,
se despliega fuera de rango, se
repite pedir e introducir de nuevo el dato*/
while((dato1>=imax) || (dato1<=imin)){
printf("Dato fuera de rango permitido \n");
printf("Introduce dato decimal: ");
scanf("%f",&dato1);
}
printf("Subtotal= %.2f \n",dato1);
do{
printf("\nCalculadora Decimal \n");
printf("Selecciona Operación: \n");
printf("0-FIN \n");
printf("1-Suma \n");
printf("2-Resta \n");
printf("3-Multiplica \n");
printf("4-Divide \n");
printf("5-Raíz cuadrada \n\n");
printf("Introduce Operación: ");
scanf("%d",&operacion);
if(operacion==0){
printf("Fin de Calcular: \n");
break;
}
if((operacion<0) || (operacion>5)){
printf("Operación Inválida \n");
continue;
}
printf("Introduce dato decimal: ");
scanf("%f",&dato2);
/*Utilizamos la instrucción de decisión y
repetición while para probar dos condiciones
de los valores del dato introducido si son
permitidos, si alguna o las dos se cumplen,
se despliega fuera de rango, se
repite pedir e introducir de nuevo el
dato*/
while((dato2>=imax) || (dato2<=imin)){
printf("Dato fuera de rango permitido \n");
printf("Introduce dato decimal: ");
scanf("%f",&dato2);
}
switch(operacion){
case(1):
/*Operación suma*/
dato1=(dato1+dato2);
break;
case(2):
/*Operación resta*/
dato1=(dato1-dato2);
break;
case(3):
/*Operación multiplica*/
dato1=(dato1*dato2);
break;
case(4):
/*Operación divide*/
dato1=(dato1/dato2);
break;
case(5):
/*Operación raíz cuadrada*/
dato1=sqrt(dato2+dato1);
break;
}//switch
if(j<100){
adato4[j] = dato1;
}else{
printf("Arreglo de datos lleno...");
}
j++;
/*Subtotal de cada operación*/
printf("Subtotal= %.2f \n",dato1);
//Sumamos dato1 a dato3
tot = tot + dato1;
}while((operacion>=0)||(operacion<=4));
k=0;
dato5=0;
printf("\nArreglo de datos\n");
for(i=0;i<100;i++){
if(!adato4[i]) continue;
k++;
dato5 = dato5 + adato4[i];
printf("Dato: %.2f\n",adato4[i]);
}
/*Total de todas las operaciones*/
printf("Total= %.2f\n",tot);
tot = 0;
printf("Promedio: %.2f\n",dato5/k);
}//Fin op arit.
if(operacion==2){
do{
printf("\nCalculadora Trigonométrica \n");
printf("Selecciona Operación: \n");
printf("0-FIN \n");
printf("1-Coseno \n");
printf("2-Seno \n");
printf("3-Tangente \n\n");
printf("Introduce Operación: ");
scanf("%d",&operacion);
if(operacion==0){
printf("Fin de Calcular: \n");
break;
}
if((operacion<0) || (operacion>3)){
printf("Operación Inválida \n");
continue;
}
dato1=0;
printf("Introduce grados en decimal: ");
scanf("%f",&dato2);
/*Operación Coseno*/
if(operacion==1){
dato3=dato2;
//Convierte grados a radianes
dato2= dato2*(3.142/180.0);
printf("Cos(%d)Grados = %f \n",dato3,cos(dato2));
}
/*Operación Seno*/
if(operacion==2){
dato3=dato2;
//Convierte grados a radianes
dato2= dato2*(3.142/180.0);
printf("Sen(%d)Grados = %f \n",dato3,sin(dato2));
}
/*Operación Tangente*/
if(operacion==3){
dato3=dato2;
//Convierte grados a radianes
dato2= dato2*(3.142/180.0);
printf("Tan(%d)Grados = %f \n",dato3,tan(dato2));
}
}while((operacion>=0)||(operacion<=3));
}//Fin op. trigonométricas
}while((operacion>=0)||(operacion<=2));
//Fin de calculadora matemática
/*La función main debe tener un retorno
de 0 errores al sistema operativo*/
return 0;
}
sábado, 2 de noviembre de 2013
Edad de la Información y el Conocimiento 1
La Edad de la Información y el
Conocimiento
VER VIDEO EYDH en internet
EYDH V3
Ver EYDH en Internet
VER VIDEO EYDH en internet
EYDH V3
Ver EYDH en Internet
Vivimos en la época de la información
y del conocimiento, de los grandes descubrimientos científicos,
también de los maravillosos inventos tecnológicos
en el que el hombre actual está inmerso, computadoras,
internet, teléfonos celulares e inteligentes, naves espaciales, satélites,
energía nuclear etc. Pero sabemos ¿Cómo el ser humano llego a estos
niveles de inteligencia? Si, es el resultado de la evolución
del universo y del desarrollo humano. La información es conocimiento que adquiere el hombre con inteligencia.
En todas las épocas de la historia del ser humano inteligente ha generado la
información, al principio en la prehistoria muy poca y actualmente en la época
de la información existe en gran cantidad. Toda la ha creado el hombre
inteligente al enfrentarse con algún problema y solucionarlo, en un proceso de
investigación de algún fenómeno natural o social, inicia con obtener datos de
ese fenómeno determinado y con la observación, experimentación y solución
del problema resulta la información y el conocimiento. El hombre prehistórico comunicaba la
información directamente hablando de sus experiencias, dando consejos,
procedimientos prácticos. Cuando se invento la escritura la información quedo
registrada para la posteridad en tablas de barro, pergaminos, papiros, después
en libros y se concentraban en
bibliotecas. En esas épocas, muy pocos tenían acceso a la información. Ahora
toda la información se concentra en una biblioteca global que es internet. Ahí
está la información disponible para que todas las personas del mundo la
utilicen, internet es la red de redes de comunicaciones. Solo con un proceso de
enseñanza aprendizaje la información se transforma y el hombre adquiere
los conocimientos generales, de ciencia y tecnología, en sus diferentes
niveles de comprenderlos, aplicarlos, analizarlos, sintetizarlos y evaluarlos.
El conocimiento lo puede adquirir cualquier persona con un poco de
esfuerzo y voluntad, a través del aprendizaje como complemento y recordatorio a
los adquiridos en la escuela. Toda la vida necesitamos aprender nuevos
conocimientos, ahora usando la tecnología de la información de internet,
podemos tener acceso a la información
por medio de computadoras o teléfonos celulares inteligentes. Pero la
adquisición de conocimientos se facilita si tenemos un modelo de aprendizaje
adecuado si utilizamos la gran capacidad de almacenamiento de una computadora o
un teléfono inteligente creando y conteniendo una base de conocimientos
científicos básicos como EYDH de la evolución universal y desarrollo
humano, que incluye también un proyecto de vida personal que nos guíe en
nuestra existencia de forma inteligente y que esté disponible directamente en
la computadora de nuestra casa o en el teléfono inteligente. En ambos casos
podemos constantemente actualizar la base de conocimientos con lectura de
libros y revistas, o con comentarios, opiniones de la radio, la televisión y de
internet.
Primero debemos entender el significado de la información y el
conocimiento. La información son datos, hechos, experiencias, de procesos o
fenómenos naturales y artificiales que están almacenados en algún medio físico
como la memoria humana, o el uso de la tecnología de la información y
comunicación hecha por el hombre al inventar la escritura, la información la
registro en una tabla de arcilla o barro, un papiro, un pergamino, un libro, un
disco magnético, el usb, cd, dvd, o en internet. El conocimiento en el hombre,
es un proceso mental de aprendizaje, que necesita cierto grado de inteligencia
y pueda quedar registrado en la memoria. Solo con el proceso de adquirir
conocimientos una persona puede recuperar la información almacenada en otra
persona, tal como la enseñanza-aprendizaje de una persona que enseña y de otra
persona que recibe la información, la procesa y aprende o adquiere
conocimientos. Todos pasamos por un
proceso de enseñanza-aprendizaje en la familia, en la escuela de los diferentes
grados desde preprimaria hasta los superiores, pero los conocimientos que
adquirimos se olvidan y con el tiempo
son solo chispazos de conocimientos, excepto los que practicamos en nuestro
trabajo que quedan grabados permanentemente. Algunas personas posteriormente
siguen un proceso de auto aprendizaje de utilizar la tecnología de información
y comunicación desde leer un libro, escuchar la radio y ver la televisión de
programas educativos, recuperar la información con una computadora almacenada
en un disco duro, usb, cd o dvd. También
de recuperar la información de un teléfono inteligente o una tablet de su
memoria interna, y externa en sd o
microsd. Por último el acceso a
internet por medio de una computadora, internet es una red de redes de
computadoras, que se extiende por todo el mundo, cada una de ellas contiene
información almacenada en medios magnéticos. Pero fácilmente no perdemos en un
mundo de información, es muy importante
tener un modelo de aprendizaje que lo facilite, por tal razón hemos propuesto
la base de conocimientos EYDH de la Evolución y desarrollo Humano, que hemos
tratado en blogs anteriores. En todos
los casos las personas en menor o mayor grado puede conocer, comprender, aplicar,
analizar, sintetizar y evaluar esos conocimientos. Los conocimientos son todos
aquellos que forman las ciencias y la tecnología de todas las áreas del
pensamiento humano, pero el modelo propuesto es una línea del tiempo del pasado
de la evolución física, biológica y social, el presente del desarrollo humano y
el futuro con un proyecto de vida. Una
sociedad de la información y el conocimiento, son todas las personas que
utilizan las tic o tecnologías de información y comunicación, para recuperar la
información localmente o a gran distancia, procesarla y obtener conocimientos
en sus diferentes grados y actualizarlos. Cabe señalar que la mayoría de la
gente llega fácilmente al grado de conocimiento de solo conocer, más complicado
y esfuerzo necesitan las personas de comprender y aplicar los
conocimientos y mucho más complicado y
mayor esfuerzo de las personas de analizar, sintetizar y evaluar los
conocimiento.
Recorreremos la prehistoria e historia de la humanidad para analizar
como el hombre ha creado la tecnología de la información, como la procesa y
obtiene conocimientos que ordenados y clasificados ha surgido las ciencias y la
tecnología.
Pasado de la Evolución Social
El hombre es estudiando por las Ciencias Sociales, para el estudio de
la información, computación y las comunicaciones, nos basaremos en la historia
de la humanidad en sus etapas de, Prehistoria con las épocas paleolítica y
neolítica, la Historia en sus diferentes etapas de Edad Antigua desde la
invención de la escritura hasta la caída del imperio romano, la Edad Media
desde la caída del imperio romano hasta la caída de Constantinopla, Edad
Moderna desde la caída de Constantinopla hasta la revolución francesa y la edad
contemporánea desde la revolución francesa hasta nuestros días. Desde 1948
vivimos la Edad de la Información y el Conocimiento, terminamos con la
descripción del mundo actual, naciones, estados, ciudades y pueblos, donde el
hombre vive, como un ser individual y social. Información.1. .2.
.3.
Prehistoria
El pensamiento del hombre primitivo es más instintivo de sobrevivir,
de satisfacer sus primeras necesidades, de comer, reproducirse y morir. Los
antecesores del hombre en las alturas de los árboles desarrollan la
característica del sentido de la visión, el color para identificar los
alimentos y la destreza de las manos y brazos en el desplazamiento entre ellos.
Cuando surgen los cambios ambientales y disminuye la vegetación y por lo tanto
los alimentos, bajan a tierra firme en busca de comida, caminando grandes
distancias y algunas veces tienen que correr para escapar del peligro, al mismo
tiempo van adquiriendo su posición vertical. Estos primeros hombres son nómadas
viven y se desplazan en un ambiente hostil y de depredación, siente miedo,
terror y pavor de los fenómenos naturales del trueno, los rayos, las erupciones,
temblores, etc. y principalmente de competir y enfrentarse a los depredadores
mucho más fuertes y poderosos. Estos son los problemas cotidianos con que se
enfrentaron, al comprenderlos y solucionarlos de forma inteligente
desarrolla el cerebro con millones de conexiones de las neuronas formando la
mente, como una red neuronal de energía electroquímica. Posiblemente hace 10
mil años sucede un gran evento, el hombre inicia el cambio de una vida nómada a
una vida sedentaria al sembrar trigo, maíz, etc. nace la agricultura y de
domesticar animales para comer, algunos para ayudar en el trabajo y otros para
su protección, se establecen cerca de ríos construyendo sus casas y templos,
porque saben que el agua es importante para ellos y para sus siembras. Surge
una pareja hombre-mujer que ha desarrollado la suficiente inteligencia para
pensar, sentir, actuar, inventar, tener perfectibilidad, una conciencia y un
alma espiritual para la religión y culto, descubre la dualidad del bien y mal.
Primero conviven en pareja de hombre-mujer y después como familia, finalmente
como comunidades, crean tribus, clanes, pueblos y más tarde civilizaciones de
diferentes grados de cultura y son la base de nuestro mundo actual. La
socialización del hombre es por medio de un lenguaje para comunicarse entre dos
personas o en grupo, así se incrementa sus facultades mentales. Para convivir
se crean condiciones como reglas, normas, leyes del orden individual para mi,
social de todos, económico para todos, político por todos. En general tratan de
sobrevivir y aprovechar los recursos naturales y protegerlos, también de
social e individualmente sobreponerse a sus instintos animales utilizando su
inteligencia, y será esa lucha de la dualidad del bien y mal, la que se
manifestara y actuara en toda la historia de la humanidad hasta la época
actual. Información.1.
Sociedad Prehistórica de la Información y el Conocimiento
Desde que el hombre apareció hace 5 millones de años, obtenía
información del medio ambiente y quedaban grabados en su memoria, los procesaba
para obtener conocimientos que le ayudaban a sobrevivir en un ambiente hostil y
salvaje, posteriormente los transmitía a sus descendientes. Desarrollo una
tecnología de comunicación rudimentaria, primero con señas, gestos y después
expresiones guturales hasta las palabras, creando un lenguaje que le permitía
comunicarse con el grupo al que pertenecía y solo así podía transmitir sus
experiencias. Experiencias de utilizar las manos para construir armas para
defenderse de los depredadores, crear fuego, métodos de atacar y matar a un
animal depredador o un animal para alimentarse, crear diversos utensilios y
vestimenta, cultivar la tierra, domesticar animales. Solo con las experiencias
como información transmitida a sus descendientes se creó una sociedad
prehistórica de información y conocimientos.
Edad Antigua
La Edad Antigua abarca desde la aparición de la escritura hace 3 mil
años AC hasta la caída del Imperio Romano en 476 DC. Parte de la historia
antigua queda registrada en el antiguo testamento de la biblia texto escrito
por varias personas en un periodo de 1000 años (900 a.C. - 100 d.C.) incluyendo
el nuevo testamento. El viejo testamento de la biblia narra hechos del inicio
de la humanidad con el génesis, la salida del paraíso de Adán y Eva, y todos
sus descendientes que se esparcen por el mundo, hasta el nacimiento de Cristo,
donde su doctrina es una nueva moral entre los hombres. Al morir Cristo, algunos de sus discípulos
o apóstoles escriben la vida de Cristo como evangelios que son el contenido del
nuevo testamento de la biblia. Otros la dan a conocer al mundo a través de la
evangelización. Los romanos la formalizan y crean la iglesia católica
apostólica romana y perdura hasta hoy como una de las religiones más
importantes en todo el mundo. Otros libros y escritos hablan de las
civilizaciones y culturas de China, India, Egipto, Mesopotamia, Grecia, Roma y
otros. Socialmente predomina la esclavitud, las guerras y los pueblos sometidos
por otros pueblos imperialistas más poderosos, siempre con el fin de apropiarse
de sus propiedades y riquezas. Información.1.
Sociedad Antigua de la Información y el Conocimiento
Con la invención de la escritura, la información queda registrada en
tablas de arcilla o barro, papiro y pergaminos, surgiendo una tecnología de
información y comunicación manual muy rudimentaria. Donde quedan registrados
experiencias, y hechos históricos. Es en Grecia donde surgen las ideas
filosóficas y se desprenden las ciencias
quedando registrados los conocimientos particulares de cada una de ellas. En
menor grado surgen procedimientos y métodos técnicos. Así aparece una sociedad
antigua de la información y conocimientos, donde no todas las personas tenían
acceso a la información y mucho menos los conocimientos, estaba restringidos a
grupos privilegiados.
Edad Media
La Edad Media abarca de la caída del Imperio Romano en 476 hasta la caída
de Constantinopla en 1453 DC siglo XV. Está época caracteriza al mundo
occidental por una sociedad religiosa sujeta a la iglesia católica representada
por el papa que tiene fuerte influencia en lo político y social. El papa es el
representante principal de la doctrina de Jesucristo que enseño una nueva moral
para el hombre y la promesa de un vida nueva y mejor después de la muerte. El
papa Constantino en el año 413 de nuestra era, formalizo la doctrina de
Jesucristo en la iglesia católica romana. Después de la caída del imperio
romano, pasa por la época feudal con gobiernos monárquicos, con guerras y
conflictos por el poder. Su economía está basada en los productos
obtenidos de la tierra realizado por los campesinos, tiene muy poco desarrollo
en las ciencia y tecnología. Información.1.
Sociedad Medieval de la Información y el Conocimiento
Debido a la iglesia católica y sus representantes que tiene el poder,
mantienen a la gente en la ignorancia y otro tanto está al servicio de los
reinos feudales, no hay continuidad en el desarrollo de la tecnología de la
información y la comunicación, escasamente conserva la antigua, se escriben muy
pocas obras, de filosofía y teología, pero son dirigidas a reforzar el poder de
la iglesia. Es con los musulmanes que invaden España, que dan a conocer en toda
Europa, las obras clásicas de los griegos de todos los conocimientos por ellos
desarrollados. Con esto surge la escolástica, pero todavía bajo el control de
iglesia, crean las primeras escuelas para preparar primero a los representantes
de la iglesia y muy poco a otras personas. Se crean las primeras universidades.
La sociedad medieval de la información y el conocimiento, está íntimamente
relacionada y controlada por la religión, en occidente por la iglesia romana y
sus representantes como un grupo privilegiado de adquirir conocimientos, muy
pocos asisten a las universidades, la mayor parte de la sociedad está exenta de
adquirirlos, y por lo tanto quedan en la ignorancia.
Edad Moderna
La Edad Moderna abarca desde la caída de Constantinopla 1453 siglo XV
hasta la Revolución Francesa en 1789 siglo XVIII. Surge el Renacimiento con la
sociedad en ciudades formando los nuevos estados, algunos hombres son de
gran talento para todas las disciplinas del conocimiento humano, las bellas
artes, filosofía, medicina, ciencias y tecnología. Se crea una economía de
comercio y con el descubrimiento y conquistas de nuevas tierras algunas
naciones europeas se benefician y crean colonias en todo el mundo. Con la
revolución francesa termina la edad moderna e inicia el fin de privilegios
feudales y gobiernos monárquicos y surge la burguesía de gente de clase media y
alta, una nueva clase social que formara el sistema capitalista de la edad
contemporánea. Información.1.
Sociedad Moderna de la Información y el Conocimiento
La invención de la imprenta facilita la
producción semiautomática del libro, superando en gran medida a los libros
hechos manualmente, la información queda registrada en muchos libros y pueden
leerse, por una gran cantidad personas, se beneficia la tecnología de la
información y comunicación para llegar a un mayor número de personas de
adquirir conocimientos. La sociedad moderna de la información y el conocimiento
son todas las personas que adquieren los libros y todos aquellos que tienen
acceso a una biblioteca pública, ambos con el fin de obtener conocimientos en
todos los temas del pensamiento humano. Hasta hoy, el libro es el medio más
usado por la humanidad para adquirir conocimientos. Se incrementa la asistencia
en todos los niveles de las escuelas y un poco menos en las universidades. De
gran importancia es el surgimiento de la primera revolución industrial, del uso
de las maquinas de vapor, en fabricas y transportes como barcos y
ferrocarriles. Generando gran cantidad de información como procedimientos de trabajo y métodos técnicos de manejar y
controlar las maquinas, pero solo accesible a un grupo de personas
privilegiadas, los que estudian la tecnología en las escuelas superiores. Información.1.
Suscribirse a:
Entradas (Atom)
