Vous êtes sur la page 1sur 4

FUNCION MAYOR

float elmayor(float a, float b)


{
return a>b? a : b;
}

int i; float mayor;


mayor=num[0];
for(i=1; i<cant; i++)
{
if(mayor<num[i])
mayor=num[i];
}
return mayor;

}
ARREGLOS
6) En un arreglo se almacenan las letras de un nombre ingresado por
teclado. Visualizar las letras del nombre en orden inverso.
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
void main()
{
char nombre[20];
clrscr();
cout<<"Ingrese un nombre: "; gets(nombre);
int longitud=strlen(nombre);
for(int i=longitud; i>=0;i--)
cout<<nombre[i];
getch();
}
ARREGLOS
3) En un arreglo se almacenan las letras de un nombre ingresado por
teclado. Visualizar las letras del nombre en direccin vertical.
#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
void main()
{
char nombre[20];
clrscr();
cout<<"Ingrese un nombre: "; gets(nombre);
cout<<"\n\n";
// int longitud=strlen(nombre);
for(int i=0; nombre[i]!='\x0'; i++)
cout<<nombre[i]<<endl;
getch();
}
ARREGLOS
Problema: Dados un conjunto de nmeros reales almacenados en un
arreglo, determinar el mayor y el menor de ellos.
#include<iostream.h>
#include<CONIO.H>
float elmayor(float [], int );
void main()
{
int cant, i; float num[20], may;
clrscr();
cout<<"Ingrese la cantidad de nmeros: ";
cin>>cant;
cout<<"Ingrese los nmeros separados por un espacio o un
<Enter>:"<<
endl;
for(i=1; i<=cant; i++)
{
cin>>num[i-1];
}
// Determinacin del mayor:
may=elmayor(num, cant);
cout<<"El mayor de los elementos es: "<<may<<endl;
getch();
}
float elmayor(float num[], int cant)

ARREGLO
De una serie de nmeros enteros almacenados en un arreglo,
Extraer slo los primos, en otro arreglo.
#include<iostream.h>
#include<conio.h>
void ingresodedatos(int numero[100], int n)
{
cout<<"Ingrese los datos: \n";
for(int i=1; i<=n; i++)
{ cout<<i<<" nmero: ";
cin>>numero[i];
}
}
int esprimo(int num)
{
int i, es=1;
for(i=2; i<num; i++)
{
if(num%i==0)
es=0;
}
return es;
}
void main()
{ int numero[100], otro[100], n;
clrscr();
cout<<"Cu ntos datos quiere ingresar? "; cin>>n;
ingresodedatos(numero, n);
int k=0;
for(int i=1; i<=n; i++)
if(esprimo(numero[i]))
{ k++;
otro[k]=numero[i];
}
for(i=1; i<=k; i++)
cout<<otro[i]<<" ";
cout<<endl;
getch();
}
ESTRUCTURA
DATOS PERSONALES
#include<math.h>
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
void main ()
{
struct datospersonales
{
char nombre[40];
char codigo[7];
int edad;
float talla;
struct
{ int dia, mes, anno;
} fecha_nac;
};
datospersonales alumno1, alumno2, alumno3;
clrscr();
cout<<"ingrese los datos del primer alumno:\n";
cout<<"nombre: "; gets(alumno1.nombre);
// cout << "edad: "; cin>>alumno1.edad;

cout<<"talla:" ; cin>>alumno1.talla;
cout<<"fecha de nacimiento(dd mm aa):";
cin>>alumno1.fecha_nac.dia>>alumno1.fecha_nac.mes>>
alumno1.fecha_nac.anno;
cout<<"\n\n los datos del primer alumno son:"<<endl;
cout<<" nombre: " << alumno1.nombre<<endl;
//cout<<"edad: "<<alumno1.edad<<endl;
cout<<"talla:"<<alumno1.talla<<endl;
cout<<"fecha de nacimiento: "<<alumno1.fecha_nac.dia<<"/"<<
alumno1.fecha_nac.mes<<"/"<<alumno1.fecha_nac.anno<<endl;
getch();
}

cout<<"Ingrese las coordenadas de los 3 puntos separadas por


espacio:\n";
cout<<"Punto A: "; cin>>a.x >> a.y;
cout<<"Punto B: "; cin>>b.x >> b.y;
cout<<"Punto C: "; cin>>c.x >> c.y;
dab=sqrt(pow(b.x-a.x,2)+pow(b.y-a.y,2));
dbc=sqrt(pow(b.x-c.x,2)+pow(b.y-c.y,2));
dac=sqrt(pow(c.x-a.x,2)+pow(c.y-a.y,2));
if(fabs(dab-dbc)<0.001*dab && fabs(dab-dac)<0.001*dab)
cout<<"El tri ngulo es aproximada o exactamente
equil tero."<<endl;
else
cout<<"El tri ngulo no es equil tero."<<endl;
getch();
}

ESTRUCTURA (NUMERO COMPLEJO)


CONTADOR
#include<iostream.h>
#include<conio.h>
void main()
{
struct complejo
complejo
{
float real;
float imag;
};

#include <iostream.h>
#include <iomanip.h>
#include <ctype.h>
// Definicin del tipo estructura llamado
// Parte real del nmero complejo
// Parte imaginaria del nmero complejo

void main(void)
{
int contador[26];
char i;
char letra;

complejo A, B, C;

for (i = 0; i < 26; i++)


contador[i] = 0;

clrscr();
cout<<"ingrese los valores del primer complejo:";
cin>>A.real>>A.imag;
// cout<<"El primer nmero complejo es "<< A.real<< "+j"
<<A.imag<< endl;
cout<<"ingrese el valor del segundo complejo:"; cin>>
B.real>>B.imag;
// cout<<"El segundo nmero complejo es "<< B.real << "+j" <<
B.imag << endl;
// Suma de A y B como nmeros complejos:
C.real=A.real+B.real;
C.imag=A.imag+B.imag;
cout<<"La suma de " << A.real << "+j" <<A.imag<< " y " <<
B.real << "+j" << B.imag << " es "<< C.real << "+j" <<
C.imag <<
endl;
getch();
}

ESTRUCTURA

CADENA DE CARACTERES

Se ingresan las coordenadas de 3 puntos en el plano x-y.


Determinar:
a) Las coordenadas del centro de la circunferencia que pasa por
estos
3 puntos.
b) Si el triangulo cuyos vrtices son estos 3 puntos es equiltero.

Se ingresa una cadena de caracteres.


Visualizarla en maysculas.

cout << "Digite una cadena y presione la tecla Enter" << endl;
do {
letra = cin.get();
if ((letra >= 'a') && (letra <= 'z'))
cin.putback(toupper(letra));
else if ((letra >= 'A') && (letra <= 'Z'))
contador[letra - 'A']++;
} while (letra != '\n');
for (i = 0; i < 26; i++)
{
cout.put((char)('A' + i));
cout << " " << contador[i] << endl;
}

// Solucin de la pregunta b:

#include <conio.h>
#include <iostream.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>

#include<iostream.h>
#include<math.h>
#include<conio.h>

void main()
{
char * titulo; int longitud;

void main()
{ struct punto
{
float x, y;
};
punto a, b, c;
float dab, dbc, dac;
clrscr();

clrscr();
cout<<"Ingrese una cadena: "; gets(titulo);
longitud = strlen(titulo);
for(int i=0; i<longitud; i++)
titulo[i]=toupper(titulo[i]);
cout<<"La cadena en maysculas es: ";
puts(titulo);
getch();
}

CADENA

clrscr();
swap (&a, &b);
/* Vale. S intercambia los valores. */
printf("a = %3d b = %3d\n", a, b);
swap1 (&a, &b);
printf("a = %3d b = %3d\n", a, b);
swap0 (a, b);
printf("a = %3d b = %3d\n", a, b);
getch();

/* Problemas sobre punteros y cadenas de caracteres:


1) Crear una funcin que reciba como parametro una cadena de
caracteres
constituida por 8 nmeros hexadecimales de 2 dgitos cada uno.
La funcin debe retornar una cadena de 64 caracteres conformada por
'1's y '0's resultantes de la conversin de los nmeros hexadecimales
a base 2.
*/
#include<iostream.h>
#include<string.h>
#include<conio.h>
#include<ctype.h>
#include<process.h>
#include<stdio.h>
char * base16abase2(char * cadena_hexa, char * cadena_binario)
{
int longitud_hexa, i; char digito_hexa; char * digitos4binario;
longitud_hexa = strlen(cadena_hexa);
if(longitud_hexa!=16)
{
cout<<"Error, la cadena no tiene 16 caracteres.\n";
exit(1);
}
cadena_binario="";
for(i=0; i<longitud_hexa; i++)
{
digito_hexa = toupper(cadena_hexa[i]);
switch(digito_hexa)
{
case '0': digitos4binario = "0000"; break;
case '1': digitos4binario = "0001"; break;
case '2': digitos4binario = "0010"; break;
case '3': digitos4binario = "0011"; break;
case '4': digitos4binario = "0100"; break;
case '5': digitos4binario = "0101"; break;
case '6': digitos4binario = "0110"; break;
case '7': digitos4binario = "0111"; break;
case '8': digitos4binario = "1000"; break;
case '9': digitos4binario = "1001"; break;
case 'A': digitos4binario = "1010"; break;
case 'B': digitos4binario = "1011"; break;
case 'C': digitos4binario = "1100"; break;
case 'D': digitos4binario = "1101"; break;
case 'E': digitos4binario = "1110"; break;
case 'F': digitos4binario = "1111"; break;
default: cout<<"dgito hexadecimal incorrecto.\n";
exit(1);
}
strcat(cadena_binario, digitos4binario);
}
return cadena_binario;
}
void main()
{
char * digitos_hexadecimales = "AFBCD5A412430A03";
char * digitos_binarios, * dig_bin;
clrscr();
digitos_binarios = base16abase2(digitos_hexadecimales, dig_bin);
cout<<"La cadena de dgitos en base 2
es:\n"<<digitos_binarios<<endl;
//printf("La cadena de dgitos en base 2 es:\n%s\n",
digitos_binarios);
getch();
}

}
swap(int *px, int *py)
{ int t;

/* Vale. S intercambia los valores. */

t = *px;
*px = *py;
*py = t;
}
swap1(int px, int py)
{ int t;

/* No intercambia los valores. */

t = px;
px = py;
py = t;
}
/* swap2(int &px, int &py)
{ int t;

Error.

t = px;
px = py;
py = t;
}
*/
swap0(px, py)
char *px[], *py[];
{
char *t;

/* No intercambia los valores. */

t = *px;
*px = *py;
*py = t;
}
PUNTEROS
#include <stdio.h>
#include <stdlib.h>
main()
{
int x, *px;
int a[5], *pa;
x=5;
px=15;

//&x;

/* La variable px es la direccin de x

*/
x++;

/* x aumenta en 1
*/
px++;
/* ahora px no es la direccin de x
*/
(*&x)++;/* x aumenta en 1
*/
(*px)++; /* el contenido de px aumenta en 1
*/
/* Arreglos: */

PUNTERO
INTERCAMBIAR
main()
{
int a, b, c;
a=1; b=2;

a[0] = 1;

/* a[i] es lo mismo que *(a+i)


*/

a[1] = 2;
*/
pa = &a[0];
*/
pa = a;
*/

/* &a[i] tambien es identico a a+i


/* pa apunta al elemento 0 del arreglo a
/* esta expresion es equivalente a la anterior

pa++;

/* pa apunta al siguiente elemento de a


(el siguiente elemento de a[1], que es a[2])
*/

pa = a+1;

PUNTEROS Y ARREGLOS
/* es lo mismo que pa=&a[1];

*/
(*pa)++;

Dados un conjunto de nmeros, ordenarlos de menor a mayor.


/* el elemento 0 de pa aumenta en 1

*/
x = (*pa+1);
*/
x = *(pa+1);

/* el valor aumentado en 1 del elemento 0 de a


es asignado a x
/* el valor del siguiente elemento (a[2]) de a
es asignado a x

*/
pa[1]++; /* la expresion pa[i] es identica a *(pa+i)
*/
/*
pa es una variable. a es una constante.
Son ilegales las siguientes expresiones:
a=pa
a++
*/
}
PUNTERO
main()
{
int x, y;
int *px, *py;
x = 3;
px = &x;
/* px toma el valor DS:FFDA (por
ejemplo) */
y = *px;
/* y toma el valor 3 */
y = *px + 1;
/* y toma el valor 4 */
printf("%d\n", *px);
*px = 5;
/* x y *px toman el valor 5 */
*px += 1;
/* x y *px toman el valor 6 */
(*px)++;
/* x y *px toman el valor 7 */
*px++;
/* px toma el valor DS:FFDC y *px tiene
otro
valor, por ejemplo, -24, pero x sigue
valiendo 7. */
/* py = px; */
}

PUNTEROS Y ARREGLOS
SE INGRESA UNA CANTIDAD DE PARES ORDENAdos,
DETERMINAR
CUANTOS SE ENCUENTRAN EN EL CUARTO CUADRANTE.
#include <iostream.h>
#include <conio.h>
void main()
{
struct pares
{ float x,y;
};
pares par[20];
int cont=0,n;
cout<<"Ingrese la cantidad de pares ordenados : "; cin>>n;
for(int i=1;i<=n;i++)
{ cout<<"Ingrese el par ordeno <separado por espacio en blanco> : ";
cin>>par[i].x>>par[i].y;
if ((par[i].y<0)&&(par[i].x>0)) cont++;
}
cout<<"Hay "<<cont<<"pares ordenados en el 4to cuadrante.";
getch();
}

#include<iostream.h>
#include<conio.h>
void intercambiar(float * p, float * q);
void main()
{
float a, b;
clrscr();
cout<<"Ingrese dos nmeros: ";
cin>>a>>b;
if (a>b)
intercambiar(&a, &b);
cout<<"Los nmeros ordenados de menor a mayor son: ";
cout<<a<<" "<<b;
getch();
}
void intercambiar(float * p, float * q)
{ float t;
t=*p;
*p=*q;
*q=t;
}

Vous aimerez peut-être aussi