impri mir

8
PUNTEROS Hallar la longitud de una cadena usando arreglos e imprimir al revez #include <stdio.h> #include <conio.h> const int max =10; int strlen( char s[]); void imprimir(char s[]); void alrevez( char s[]); int main() { char nombre[max]= "UNSA"; int lc; lc= strlen(nombre); printf("\n la cadena %s tiene %d letras",nombre,lc); printf("\n cadena es "); imprimir(nombre); printf("\n Imprimido al revez"); alrevez(nombre); getch(); } void imprimir(char s[]) { int i; printf("\n direccion de s %u y su valor %u",&s,s); for (i=0;s[i]!='\0';i++) printf("\n &s[%d] =%u s[i] =%c",i,&s[i],s[i]); } int strlen( char s[]) { int i; for (i=0;s[i]!='\0';i++) i++; return i; } void alrevez( char s[]) { int i; for (i=strlen(s);i>=0;i--) printf("%4c",s[i]); } HALLAR DIRECCION,VALOR DE TRES COLORES #include <stdafx.h> #include <conio.h> #include <stdio.h> const int max =5; void imprimir(char *s) { printf("\n direccion de s %u y su valor %u",&s,s); for (;*s!='\0';s++) printf("\n s=%u *s =%c",s,*s); } void mostrar(char *color[], int n) { for (int i=0; i<n;i++) { printf("\n &color[%d]= %u color[%d] %u = %s ", i,&color[i],i, color[i], color[i]); imprimir(color[i]); } } int main() { char *colores[max]={"Azul","Verde","Rojo" }; char **s1; s1=&colores[0]; printf("\n %s ",*(s1+1)); mostrar(colores,3); getch(); } (FUNCIONES) #include "stdafx.h" #include"stdio.h" #include"conio.h" void suma(int*w,int*x,int*y) { *y=*w+*x; } int _tmain(int argc, _TCHAR* argv[]) { int a=50,b=25,c=12,*d; suma(&a,&b,&c); printf("a:%i b:%i c:%i ",a,b,c);_getch(); return 0; } (ARREGLOS) MENU 1.-Ingresar Valores 2.-Sumar 3.-Restar 4.-Salir Elige opcion_ #include "stdafx.h" #include "stdio.h" #include "conio.h" #include "basico.h" int A[100],B[100],C[100],n; void mpantalla() { clrscr(); gotoxy(10,10);printf("M E N U"); gotoxy(5,14);printf("1.-Ingresar Numeros"); gotoxy(5,16);printf("2.-Sumar Numeros"); gotoxy(5,18);printf("3.-Restar Numeros"); gotoxy(5,20);printf("4.-SALIR"); gotoxy(20,22); printf("Ingrese Opcion "); } void ingresa() { int i; clrscr(); printf("Ingresa tamano del vector :"); scanf("%i",&n); for(i=0;i<n;i++) {printf(" Ingresa Vector A pocision %i : ",i); scanf("%i",&A[i]); } for(i=0;i<n;i++) {printf(" Ingresa Vector B pocision %i : ",i); scanf("%i",&B[i]); } } void sumav(int *D,int *E,int *F,int s) { int i; for(i=0;i<s;i++) F[i]=D[i]+E[i]; } void restav(int *D,int *E,int *F,int s) { int i; for(i=0;i<s;i++) F[i]=D[i]-E[i]; } void muestrav(int *C,int n) { int i; clrscr(); for(i=0;i<n;i++) printf(" %i ",C[i]); getch(); } int _tmain(int argc, _TCHAR* argv[]) { char opc='0'; while(opc!='4') { mpantalla(); opc=getch(); if(opc=='1') ingresa(); if(opc=='2') {sumav(A,B,C,n); muestrav(C,n);} if(opc=='3') {restav(A,B,C,n); muestrav(C,n);} } printf("\nSALIR GRACIAS"); getch(); return 0;

Upload: larissa-alegre-penaloza

Post on 25-Oct-2015

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Impri Mir

PUNTEROSHallar la longitud de una cadena usando arreglos e imprimir al revez#include <stdio.h>#include <conio.h>const int max =10;int strlen( char s[]);void imprimir(char s[]);void alrevez( char s[]);int main(){ char nombre[max]= "UNSA"; int lc; lc= strlen(nombre); printf("\n la cadena %s tiene %d letras",nombre,lc); printf("\n cadena es "); imprimir(nombre); printf("\n Imprimido al revez"); alrevez(nombre); getch();}void imprimir(char s[]){ int i; printf("\n direccion de s %u y su valor %u",&s,s); for (i=0;s[i]!='\0';i++) printf("\n &s[%d] =%u s[i] =%c",i,&s[i],s[i]);}int strlen( char s[]){ int i; for (i=0;s[i]!='\0';i++) i++; return i;}void alrevez( char s[]){ int i;for (i=strlen(s);i>=0;i--) printf("%4c",s[i]);}HALLAR DIRECCION,VALOR DE TRES COLORES#include <stdafx.h>#include <conio.h>#include <stdio.h>const int max =5;void imprimir(char *s){ printf("\n direccion de s %u y su valor %u",&s,s); for (;*s!='\0';s++) printf("\n s=%u *s =%c",s,*s);}void mostrar(char *color[], int n){ for (int i=0; i<n;i++) { printf("\n &color[%d]= %u color[%d] %u = %s ", i,&color[i],i, color[i], color[i]); imprimir(color[i]); } }int main(){ char *colores[max]={"Azul","Verde","Rojo" };char **s1; s1=&colores[0]; printf("\n %s ",*(s1+1)); mostrar(colores,3); getch();}

(FUNCIONES)#include "stdafx.h"#include"stdio.h"#include"conio.h"void suma(int*w,int*x,int*y){

*y=*w+*x;}int _tmain(int argc, _TCHAR* argv[]){

int a=50,b=25,c=12,*d;suma(&a,&b,&c);

printf("a:%i b:%i c:%i ",a,b,c);_getch();

return 0;}(ARREGLOS)MENU1.-Ingresar Valores2.-Sumar3.-Restar4.-SalirElige opcion_#include "stdafx.h"#include "stdio.h"#include "conio.h"#include "basico.h"int A[100],B[100],C[100],n;void mpantalla(){

clrscr();gotoxy(10,10);printf("M E N U");gotoxy(5,14);printf("1.-Ingresar Numeros");

gotoxy(5,16);printf("2.-Sumar Numeros");gotoxy(5,18);printf("3.-Restar Numeros");gotoxy(5,20);printf("4.-SALIR");gotoxy(20,22); printf("Ingrese Opcion ");

}void ingresa(){

int i;clrscr();printf("Ingresa tamano del vector :");

scanf("%i",&n);for(i=0;i<n;i++)

{printf(" Ingresa Vector A pocision %i : ",i); scanf("%i",&A[i]); }

for(i=0;i<n;i++){printf(" Ingresa Vector B pocision

%i : ",i); scanf("%i",&B[i]); }

}void sumav(int *D,int *E,int *F,int s){

int i;for(i=0;i<s;i++)

F[i]=D[i]+E[i];}void restav(int *D,int *E,int *F,int s){

int i;for(i=0;i<s;i++)

F[i]=D[i]-E[i];}void muestrav(int *C,int n){

int i;clrscr();for(i=0;i<n;i++)

printf(" %i ",C[i]);getch();

}

int _tmain(int argc, _TCHAR* argv[]){ char opc='0';

while(opc!='4'){

mpantalla();opc=getch();if(opc=='1')

ingresa(); if(opc=='2')

{sumav(A,B,C,n);muestrav(C,n);}if(opc=='3'){restav(A,B,C,n);muestrav(C,n);}

}

printf("\nSALIR GRACIAS");getch();return 0;

}LLEVAR D A C#include "stdafx.h"#include"stdio.h"#include"conio.h"int _tmain(int argc, _TCHAR* argv[]){

int a=50,b=25,c=12,*d;d=&c;

printf("la direccion de c es :%#X la direccion de d es: %#X ",&c,d);_getch();

return 0;}a) Ingresar a un vector N datos reales por el tecladoa) Mostrar esos n datos por el tecladosb) Ordenar los n datosC) Mostrar el vector ordenado#include <conio.h>#include <stdio.h>void ingresar( float *pa,int n);

void mostrar(float *pa,int n);void ordenar(float *pa,int n);int main(){

int n,i ; float *pa;printf("\n Ingrese numero de datos "); scanf("%d",&n); pa=new float[n];ingresar(pa,n);

Page 2: Impri Mir

printf("\n datos ingresados"); mostrar(pa,n); ordenar( pa, n);printf("\n datos ordenados"); mostrar(pa,n); delete [] pa; getch();}void ingresar( float *pa,int n){int i; float dato; printf("\n ingrese %d datos", n); for (i=0;i<n;i++) { scanf("%f",&dato); *(pa+i)=dato; }}

void mostrar(float *pa,int n){

for (int i=0; i<n;i++) printf("%7.2f",*(pa+i));}void ordenar(float *pa,int n){ int i,j;float temp; for (i=0;i<n-1; i++) for (j=i+1;j<n;j++)

{ if ( *(pa+j)<*(pa+i)) { temp=*(pa+i); *(pa+i)=*(pa+j);

*(pa+j)=temp; }

}} Rellenar una matriz de n filas por m columnas de números aleatorios de 0 a 10a) mostrar la matrizb) cuantos cuatros hay en la matrizc) cuantos cuatros hay en la segunda filad) cuantos cuatros hay en la segunda columnae) el elemento mayor en que fila y columna se encuentra.#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <time.h>const int Nfilas=10;void generar(int *A[] , int nf , int nc );void mostrar(int *A[] , int nf , int nc);int nroelementosM(int *A[] , int nf , int nc,int nro);void limpiar(int *A[], int nf, int nc);int main(){

int *A[Nfilas],fila;int nf=8,nc=8,filamayor,colmayor;

srand( (unsigned)time( NULL ) ); generar(A, nf , nc ); mostrar(A,nf,nc); printf("\n hay %d cuatros en la matriz ",nroelementosM(A,nf,nc,4)); limpiar(A,nf,nc); getch();}void generar(int *A[] , int nf , int nc ){ int fila ,col; for (fila=0; fila<nf; fila++) { A[fila] = new int [nc+1]; for (col=0; col<nc; col++) * ( A[fila]+col)= rand()% 10; }}void mostrar(int *A[] , int nf , int nc){ int fila,col;

for (fila=0; fila<nf; fila++) { printf("\n");

for (col=0; col<nc; col++) printf(" %d ",*(A[fila]+col)); }}int nroelementosM(int *A[] , int nf , int nc,int nro){ int fila,col,ne=0; for (fila=0; fila<nf; fila++) for (col=0; col<nc; col++) if (*(A[fila] +col)==nro) ne++; return ne;}void limpiar(int *A[], int nf, int nc){ int fila; for (fila=0; fila<nf; fila++) delete [] A[fila];}Punteros a arreglos de funciones ( las 4 operaciones)#include<windows.h> #include<conio.h>#include <stdio.h>#include "e:\misdatos\milib.h"const int max=4;

float suma(float x, float y){ return x+y;}float resta(float x, float y){ return x-y;}float producto(float x, float y){ return x*y;}float division(float x, float y){ return x/y;}int main(){ float x=2, y=3;float (*pf[4]) (float x, float y)={suma,resta,producto,division};printf("\n la suma es %f", (*pf[0])(x,y));printf("\n la resta es %f", (*pf[1])(x,y));printf("\n la multiplicacion es %f", (*pf[2])(x,y));printf("\n la division es %f", (*pf[3])(x,y));getch();} Punteros usados para arreglos de 2 dimensiones#include <conio.h>#include <stdio.h>#include <stdlib.h>int main(){ const int filas=3,col=5; //matriz de 3 filas y 5 columnas int *matriz[filas],nro,i,j;system("cls"); for (i=0; i<filas;i++) { matriz[i]=new int[col]; if (matriz[i]==NULL) { printf("\n espacio ensuficiente");exit(0);} for (j=0;j<col;j++) *(matriz[i]+j)=i*col+j; } printf("\nvisualizacion con punteros "); for (i=0; i<filas; i++) { printf("\n"); for (j=0;j<col;j++) printf("%4d",*(matriz[i]+j)); } printf("\nvisualizacion con arreglos "); for (i=0; i<filas; i++) { printf("\n"); for (j=0;j<col;j++) printf("%4d",matriz[i][j]); } getch(); delete []matriz;return 0; }ESTRUCTURAS1.INGRESAR ALUMNO2.MODIFICAR ALUMNO3.ELIMINAR ALUMNO4.MOSTAR ALUMNO5.BUSCAR ALUMNO6.SALIR#include "stdafx.h"#include "conio.h"#include "stdio.h"#include <basico.h>struct alumnos{char nombre[30];char apellido[30];int edad;char CUI[10];};alumnos alumno[100];int n=0;void ingresar(){

clrscr();gotoxy(20,3);printf("INGRESAR ALUMNOS ");gotoxy(10,6);printf("Ingresa Nombre

");scanf("%s",&alumno[n].nombre);gotoxy(10,7);printf("Ingresa Apellido

");scanf("%s",&alumno[n].apellido);gotoxy(10,8);printf("Ingresa CUI ");

scanf("%s",&alumno[n].CUI);gotoxy(10,9);printf("Ingresa EDAD ");

scanf("%i",&alumno[n].edad);n++;gotoxy(20,12);printf("Se ha ingresado el

registro Nro :%i",n);getch();

}void mostrar(){

int i;clrscr();gotoxy(10,5);printf("NOMBRE APELLIDO

CUI EDAD ");

gotoxy(10,6);printf("===============================");for(i=0;i<n;i++)

{gotoxy(10,7+i);printf("%s",alumno[i].nombre);

gotoxy(25,7+i);printf("%s",alumno[i].apellido);gotoxy(40,7+i);printf("%s",alumno[i].CUI);gotoxy(55,7+i);printf("%i",alumno[i].edad);}

Page 3: Impri Mir

getch();}void ordenar(){

int i,j;alumnos tmp;for(i=0;i<n-1;i++)

for(j=i;j<n;j++)

if(alumno[i].nombre<alumno[j].nombre){tmp=alumno[i];alumno[i]=alumno[j];alumno[j]=tmp;}

}void buscar(){

int i;char busca[30];clrscr();gotoxy(10,8);printf("BUSCAR ALUMNOS");gotoxy(15,10);printf("Ingrese el Texto a

Buscar :");scanf("%s",&busca);for(i=0;i<n;i++)

if(strstr(alumno[i].nombre,busca)>0)break;

if(i==n)printf("NO FUE ENCONTRADO");

elseprintf("Se encontro el registro

nro %i corresponde a \n nombre: %s \n apellido :%s",i,alumno[i].nombre,alumno[i].apellido);getch();}

int _tmain(int argc, _TCHAR* argv[]){ bool salir=false;

char opc;while(!salir){

clrscr();gotoxy(20,5);printf(" M E N U");gotoxy(10,7);printf("1.-Ingresar Alumnos");gotoxy(10,8);printf("2.-Modificar

Alumnos");gotoxy(10,9);printf("3.-Eliminar Alumnos");gotoxy(10,10);printf("4.-Mostar Alumnos");gotoxy(10,11);printf("5.-Buscar Alumnos");gotoxy(10,12);printf("6.-Salir");opc=getch();if(opc=='6') salir=true;

if(opc=='1') ingresar();if(opc=='4') mostrar();if(opc=='5') {ordenar();buscar();}}printf("ADIOS ............");getch();

return 0;}En una empresa hay n trabajadores cada registro de trabajador contiene los siguientes campos

- Nombre del trabajador = 30 caracteres; - Tipo del trabajador = 1 carácter - Edad del trabajador = Número entero; - Sueldo de trabajador = Número real

Ingresar los datos de cada trabajador y listarlos después con todos los campos y agregar sueldo neto que es igual sueldo* 0.9.#include <string.h>#include <conio.h>#include <stdlib.h>#include <stdio.h>const int tmax= 10; // hasta 10 trabajadores int main() { struct registro { char nombre[30]; char tipo; int edad; float sueldo; }; int i,k, na;char c; float valor;int eda; registro traba[tmax]; // array de estructuras o registros(ficha) printf("\n ingrese numero de trabajadores"); scanf("%d",&na); printf("ingrese %d datos\n",na); for (i=0;i<na;i++) { printf("REGISTRO %d :",i); printf("\nIngrese nombre :"); scanf("\n",&c); //se no se pone esto no ingresa los demás nombres k=0; c='*'; while((c=getchar())!='\n') { traba[i].nombre[k]=c; k++;if (k>29)break;

// un nombre no puede tener mas de 29 letras } traba[i].nombre[k]='\0'; // aparentemente podría ser así gets(traba[i].nombre); printf("Ingrese tipo(O,E,F):"); traba[i].tipo=getchar(); printf("ingrese edad :"); scanf("%d",&eda); traba[i].edad=eda; printf("Ingrese Sueldo :"); scanf("%f",&valor); traba[i].sueldo=valor; } printf("\nRESULTADOS"); printf("\n%-20s %2s %3s","NOMBRES Y APELLIDOS","TIPO","EDAD"); printf(" %-8s %-8s", "SUELDO BRUTO","SUELDO NETO"); printf("\n=============================================="); for (i=0;i<na;i++) printf("\n%-20s %2c %3d %10.2f %10.2f", traba[i].nombre,traba[i].tipo,traba[i].edad, traba[i].sueldo,traba[i].sueldo*0.9); getch(); return 0;}Realizar las operaciones de ingresar, mostrar, grabar, recuperar datos de n alumnos#include <conio.h>#include <stdio.h> const int max=10,maxcol=30; struct alumno

{ char nombre[maxcol]; int nota;};

void ingresar( alumno estu[], int *n){ int nro,i; printf("\n cuantos alumnos "); scanf("%d",&nro); for(i=0; i<nro;i++) { printf("Ingrese nombre :"); scanf("%s",&estu[i].nombre); printf("Ingrese nota :"); scanf("%d",&estu[i].nota); }*n=nro;}void mostrar( alumno estu[], int n){ int i; printf(" \n %-30s %4s","nombre","edad"); for(i=0; i<n;i++) printf("\n %-30s%4d ",estu[i].nombre,estu[i].nota);}void grabar( alumno estu[], int n){ FILE *p; int i; char nom_arch[maxcol]; printf("\n ingrese el camino y nombre del archivo a grabar :"); scanf("%s", &nom_arch); p= fopen(nom_arch,"w"); for(i=0; i<n; i++) fprintf(p,"\n%-30s%4d",estu[i].nombre,estu[i].nota); fclose(p); printf("\n el archivo %s ha sido grabado ",nom_arch);}void recuperar( alumno estu[], int *n){ FILE *p; int i; char nom_arch[maxcol]; printf("\n ingrese el camino y nombre del archivo a recuperar :"); scanf("%s", &nom_arch); if (( p= fopen(nom_arch,"r"))==0) printf("\n No existe ese archivo \n");else {i=0; while(!feof(p)) { fscanf(p,"\n%30s%4d",&estu[i].nombre,&estu[i].nota); i++; } fclose(p); printf("\n el archivo %s ha sido recuperado ",nom_arch); *n=i; }}int main(){ int na=0,opcion; alumno estu[max]; do {printf("\n 1.Ingresar 2.listar 3.Grabar 4. recuperar 5.Salir "); scanf("%d",&opcion); switch(opcion) { case 1: ingresar(estu, &na);break; case 2: mostrar(estu,na); break; case 3: grabar(estu,na);break; case 4: recuperar(estu,&na); break; case 5: break; } }while(opcion!=5);}Programa que lee una lista de nombres#include <conio.h>

Page 4: Impri Mir

#include <stdio.h>#define MAX 10 /* maximo numero de nombres */#define LONG 60 /*numero de caracteres por nombre */int main(){ char lista[MAX][LONG]; char *fin; /* valor devuelto por gets */ int i=-1 ,n ; /* indice */ puts("para finalizar la entrada pulse Ctrl+Z (eof) "); do { printf("\n Nombre y Apellidos "); /* Un EOF hace que gets devuelva un puntero nulo */ fin = gets(lista[++i]); } while (fin!=NULL&&i<MAX); /* escribir datos */ printf("\n"); for (n=0; n<i; n++) printf("%s\n ",lista[n]);getch();}ORDENACION Y BUSQEDA// CUEPROS DE PROCEDIMIENTOS Y FUNCIONESvoid BusquedaSecuencial(int x, TVector v, int ini, int fin, int &pos, bool &encontrado){ pos = ini;encontrado=false;while ( (pos <=fin) && (!encontrado) ){ if (v[pos]==x){ encontrado=true;}else{ ++pos;}}}void BusquedaBinaria(int x, TVector v, int ini, int fin, int &pos, bool &encontrado){ encontrado=false;while ( (ini <=fin) && (!encontrado) ){ pos = (ini+fin)/2;if (v[pos]==x){ encontrado=true;}else if (x < v[pos]){ ini = pos +1;}else{ fin = pos-1;}}}void OrdenacionInserccion(TVector &v,int ini, int fin){ int i, pos, aux;for(i=ini+1;i<=fin;++i){ aux = v[i];pos = buscar_posicion(aux, v, ini, i-1);abrir_hueco(v, pos, i);v[pos]=aux;}}void OrdenacionSeleccion(TVector &v,int ini, int fin){ int i,pos;for(i=ini;i<fin;++i){ pos = PosicionmenorElemento(v,i,fin);intercambia(v[i],v[pos]);}}void OrdenacionIntercambio(TVector &v,int ini, int fin){ int i,j,aux;bool intercambio;intercambio= true;i=ini;while( (i<=fin-1) && (intercambio) ){ intercambio = false;for(j=ini;j<=fin-1;++j){ if (v[j]>v[j+1]){ intercambio= true;Laboratorio de Programación 1ºA E.T.S.I. Informática GestiónJosé Luis Pastrana Brincones @ 20022intercambia(v[j],v[j+1]);}}++i;}}int buscar_posicion(int aux, TVector v, int ini, int fin){ int i;i = ini;while( (i<=fin) && (v[i]<aux) ){ ++i;}return i;}void abrir_hueco(TVector &v, int ini, int fin)

{ int i;for(i=fin;i>=ini+1;--i){ v[i] = v[i-1];}}void intercambia(int &x, int &y){ int t;t = x;x = y;y = t;}int PosicionmenorElemento(TVector v,int ini, int fin){ int i,menor;menor = ini;for(i=ini+1;i<=fin;++i){ if (v[i]<v[menor]){ menor = i;}}return menor;}CLASESEjemplo1.- Sumar dos números definiendo la función dentro de la declaración de la clase#include <iostream>#include <conio.h>using std::cout ;class operacion{private: float n1,n2; public: operacion(int _n1=2, int _n2= 3) {n1=_n1; n2=_n2;}; float suma(){return n1+n2; }; ~operacion(){cout<< "Objeto destruido";};};int main(){ operacion ob1(10,20); cout<< "\n la suma es "<<ob1.suma(); getch(); return 0; }Ingresar nombres y edad de n estudiantes en un vector#include<windows.h>#include<iostream>#include<conio.h>using std::cout;using std::cin;using std::endl;class estudiante { int nro; char nombre[30]; int edad; public: void ingresar_datos(int i);

void mostrar_datos(); }; void estudiante:: ingresar_datos(int n){ nro=n; cout<< "\nIngrese nombre "<< n<< " :"; cin>> nombre; cout<< "Ingrese edad "; cin>> edad;};void estudiante:: mostrar_datos(){cout<< "\n Nro " <<nro <<"nombre "<< nombre << " edad "<< edad;} ;int main(){ const int max=20;int i,n=2; estudiante alumno[max]; system("cls"); cout<< " \n Cuantos datos ";cin>> n; for(i=0;i<n;i++) alumno[i].ingresar_datos(i); for(i=0;i<n;i++) alumno[i].mostrar_datos(); getch(); return 0;}Ejemplo1. punteros a objetos#include <conio.h>#include <iostream>using std::cout;using std::endl;class ejemplo{ int num; public: void est_num(int val){ num= val;} void mostrar_num(){ cout << num << endl;};};int main(void){ejemplo objeto, *p ; //declarar un objeto y un puntero a el objeto.est_num(101); // acceso a objeto directamente; objeto.mostrar_num(); p=&objeto;// asignar a p la direccion de objeto p->mostrar_num();// acceder a objeto usando un puntero getch(); return 0;}Problema C901.- Menú de 4 operaciones con objetos

Page 5: Impri Mir

#include <conio.h>#include <iostream>using std::cin;using std::cout;using std::cout;class operacion {protected: float n1, n2; public :operacion(float x=1,float y=2){n1=x,n2=y;};

void ingresar(); float sumar(){return n1+n2;}; float restar(){return n1-n2;}; float multiplicar(){return n1*n2;}; float dividir(){return n1/n2;}; ~operacion(void){ cout<<"\n objeto destruido "; };

};void operacion::ingresar(){cout<< "\n ingrese dos numeros "; cin>>n1>>n2;}; int main() { operacion objeto; int opcion; do { cout<< "\n 1.ingresar 2.sumar 3.restar. 4.multiplicar 5. dividir 6.salir "; cin>>opcion; switch(opcion) { case 1: objeto.ingresar();break; case 2: cout<< "\n la suma es "<<objeto.sumar(); break; case 3: cout<< "\n la resta es "<<objeto.restar();break; case 4: cout<< "\n la multiplicacion es "<<objeto.multiplicar(); break; case 5: cout<< "\n la division es "<<objeto.dividir(); break; case 6: break; } }while(opcion!=6);return 0; }Problema C902 ingresar nombre y edad de tres alumnos#include<iostream>#include<conio.h>using std::cout;using std::cin;class estudiante { char *nombre; int edad; public: void ingresar_datos();

void mostrar_datos(); };void estudiante:: ingresar_datos(){ nombre= new char[20];

cout<< "\nIngrese nombre "; cin>> nombre;cout<< "Ingrese edad "; cin>> edad;};void estudiante:: mostrar_datos(){cout<< "\n nombre "<< nombre << "edad "<< edad;} ;int main(){ estudiante juan, pepe ,luis; system("cls"); juan.ingresar_datos(); juan.mostrar_datos(); getch(); pepe.ingresar_datos(); luis.ingresar_datos(); pepe.mostrar_datos(); luis.mostrar_datos(); getch(); return 0;}FICHEROS#include "stdafx.h"#include "stdio.h"#include "conio.h"#include "basico.h"struct tipo_registro{

int no_producto;char descripcion[30];int cantidad;float precio;

};tipo_registro registro;FILE *archivo;void ingresar (void){

clrscr();int no_prod;printf("\ningresar el codigo del producto:

");scanf("%i",&no_prod);archivo=fopen("d://practica.txt","rb+"); //r

lectura b:binario +:lectura y escrituraif(archivo==NULL)

archivo=fopen("d://practica.txt","wb");archivo=fopen("d://practica.txt","rb+");

fread(&registro,sizeof(registro),1,archivo);while(!feof(archivo)){

if(registro.no_producto==no_prod){

printf("\nnumero de producto duplicado");

printf("\ndescripcion: %s",registro.descripcion);

printf("\ncantidad: %i", registro.cantidad);

printf("precio : %5.2f",registro.precio);

getch();return;

}

fread(&registro,sizeof(registro),1,archivo);}printf("ingresa

descripcion:");scanf("%s",&registro.descripcion);printf("ingresa

cantidad:");scanf("%i",&registro.cantidad);printf("ingresa

precio:");scanf("%f",&registro.precio);registro.no_producto=no_prod;fwrite(&registro,sizeof(registro),1,archivo);fclose(archivo);printf("\nregistro almacenado correctamente");

getch();}void modificar(){

clrscr();int no_prod;printf("\ningresar el codigo del producto a

modificar: ");scanf("%i",&no_prod);archivo=fopen("d://practica.txt","rb+"); //r

lectura b:binario +:lectura y escrituraif(archivo==NULL)

archivo=fopen("d://practica.txt","wb");

//archivo=fopen("d:\practica.txt","rb+");//abririlo definitivamente para escribir

fread(&registro,sizeof(registro),1,archivo);while(!feof(archivo)){

if(registro.no_producto==no_prod){

printf("\nnumero de producto encontrado actuales valores son: ");

printf("\ndescripcion: %s",registro.descripcion);

printf("\ncantidad: %i", registro.cantidad);

printf("precio : %5.2f",registro.precio);

printf("\nMODIFICAR VALORES");

printf("\nINGRESAR descripcion:"),scanf("%s",&registro.descripcion);

printf("\nINGRESAR cantidad:"),scanf("%i", &registro.cantidad);

printf("\nINGRESAR precio :"),scanf("%f",&registro.precio);

fseek(archivo,ftell(archivo)-sizeof(registro),SEEK_SET);

fwrite(&registro,sizeof(registro),1,archivo);printf("REGISTRO

MODIFICADO CORRECTAMENTE");getch();fclose(archivo);return ;

}

fread(&registro,sizeof(registro),1,archivo);}fclose(archivo);

}void listar(void){

clrscr();printf("\nLISTADO DE REGISTROS INGRESADOS");archivo=fopen("d://practica.txt","rb+"); //r

lectura b:binario +:lectura y escrituraif(archivo==NULL)

archivo=fopen("d://practica.txt","wb");archivo=fopen("d://practica.txt","rb+");fread(&registro,sizeof(registro),1,archivo);printf("\nPRODUCTO DESCRIPCION CANTIDAD

PRECIO");while(!feof(archivo)){

Page 6: Impri Mir

printf("\n %i %s %i %f",registro.no_producto,registro.descripcion,registro.cantidad,registro.precio);

fread(&registro,sizeof(registro),1,archivo);}

getch();fclose(archivo);}void mpantalla()

{clrscr();gotoxy(10,7);printf("M E N U");gotoxy(5,9);printf("1.-Ingreso Registros");gotoxy(5,10);printf("2.-Consultar registros");gotoxy(5,11);printf("3.-Modificar Registros");

gotoxy(5,12);printf("4.-Eliminar Registros");gotoxy(5,13);printf("5.-listar Registros");gotoxy(5,14);printf("6.-SALIR");gotoxy(20,16); printf("Ingrese Opcion ");

}

int _tmain(int argc, _TCHAR* argv[]){ char opc='0';

while(opc!='6'){

mpantalla();opc=getch();

if(opc=='1')ingresar();

if(opc=='3')modificar();

if(opc=='5')listar();

}

printf("\nSALIR GRACIAS");getch();return 0;

}

JERARQUIA#include <windows.h>#include <iostream>#include <conio.h>using std::cout;using std::cin;const int lon =40;class empleado // clase empleado{ private: char nombre[lon]; // nombre del empleado; unsigned long LE; // libreta electoral int edad; // edad del empleado public: void leerdatos() { cout<< " ingrese nombre:";cin >> nombre; cout<< " ingrese LE :"; cin>>LE; cout<< " ingrese edad :"; cin>>edad; } void verdatos() { cout<< "\n nombre : " << nombre; cout<< "\n LE : "<<LE; cout<< "\n edad : " <<edad; } };class administrativo:public empleado{ private: char categoria[lon]; //director general, jefe de sec.,etc. char destino [lon];// gerencia, contabilidad, etc; public: void leerdatos() { empleado:: leerdatos(); cout<< " Ingrese categoria :"; cin>> categoria; cout <<" Ingrese destino :"; cin>> destino; } void verdatos() { empleado:: verdatos(); cout<<"\n categoria :" << categoria; cout<<"\n Destino :" << destino; } };class profesor:public empleado{ private: char titulo[lon]; // fisico, matemático, etc; int publicaciones; //nro de publicaciones public: void leerdatos() { empleado::leerdatos(); cout << " Ingrese titulo :";cin>> titulo; cout << " Ingrese nro de publicaciones :"; cin >> publicaciones; }

void verdatos() { empleado:: verdatos(); cout << "\n titulo :" << titulo; cout << "\n publicaciones :"<< publicaciones; } }; class auxiliar: public empleado { }; void main() { administrativo a; profesor p1,p2; auxiliar aux; system("cls"); cout << "\n ingrese dato del administrativo \n"; a.leerdatos(); cout << "\n ingrese datos del profesor 1 \n"; p1.leerdatos(); cout << "\n ingrese datos del profesor \n 2"; p2.leerdatos(); cout << "\n ingrese datos del auxiliar\n"; aux.leerdatos(); cout <<" datos personales del administrativo"; a.verdatos(); cout <<" datos personales del profesor 1"; p1.verdatos(); cout <<" datos personales del profesor 2"; p2.verdatos(); cout <<" datos personales del auxiliar "; aux.verdatos(); getch();