Académique Documents
Professionnel Documents
Culture Documents
#include "stdafx.h"
#include "iostream"
#include "stdlib.h"
#include "fstream"
#include "stdio.h"
#include "string"
using namespace std;
bool esNumerico(string linea);
void ingreso(int *vec, int n) {
int valor;
string linea;
for (int i = 0; i < n; i++) {
do {
cin >> linea;
} while (esNumerico(linea) == false);
valor = atoi(linea.c_str());
*(&(*vec)+i)=valor;
}
}
void impresion(int *vec, int n) {
for (int i = 0; i < n; i++) {
printf("%d ", *(&(*vec) + i));
}
cout << endl;
}
void suma(int *vect1, int *vect2, int *vect3, int n) {
for (int i = 0; i < n; i++) {
(*(&(*vect3) + i)) = (*(&(*vect1) + i)) + (*(&(*vect2) + i));
}
}
bool esNumerico(string linea)
{
bool b = true;
int longitud = linea.size();
if (longitud == 0) { // Cuando el usuario pulsa ENTER
b = false;
}
else if (longitud == 1 && !isdigit(linea[0])) {
b = false;
}
else {
int i;
if (linea[0] == '+'|| linea[0] == '-')
i = 1;
else
i = 0;
return b;
void vectores() {
int *vect1, *vect2, *vect3, n;
bool a=NULL;
string linea;
do {
system("cls");
cout << "Ingrese Numero de elementos del vector: " <<
endl;
do{
cin >> linea;
if (linea[0] == '-') {
a = false;
}
else if (!esNumerico(linea)) {
a = false;
}
else
a = true;
} while (a==false);
n = atoi(linea.c_str());
vect1 = (int*)calloc(n, sizeof(int));
vect2 = (int*)calloc(n, sizeof(int));
vect3 = (int*)calloc(n, sizeof(int));
cout << "ingrese los datos del vector 1 : " << endl;
ingreso(vect1, n);
cout << "ingrese los datos del vector 2 : " << endl;
ingreso(vect2, n);
cout << "los datos del vector 1 son: " << endl;
impresion(vect1, n);
cout << "los datos del vector 2 son: " << endl;
impresion(vect2, n);
cout << "la suma es: " << endl;
suma(vect1, vect2, vect3, n);
impresion(vect3, n);
free(vect1);
free(vect2);
free(vect3);
system("pause");
} while (true);
}
int main()
{
vectores();
return 0;
}
"stdafx.h"
<conio.h>
<stdio.h>
<iostream.>
"string"
} while (a == false);
*numero= atoi(linea.c_str());//el valor lo devuelve al puntero
}
int MCD(int n1, int n2) {
int temporal;
while (n2>0)
{
temporal = n1%n2;
n1 = n2;
n2 = temporal;
}
return n1;
}
bool esNumerico(string linea)
{
bool b = true;
int longitud = linea.size();
if (longitud == 0) {
b = false;//si
}
else if (longitud ==
b = false;//si
falso
}
else {
int i;
if (linea[0] == '+' || linea[0] == '-')//el primer caracter
puede ser un signo
i = 1;
else
i = 0;
while (i < longitud) {
if (!isdigit(linea[i])) {//compara si los caracteres son
digitos
}
}
}
return b;
}
i++;
b = false;
break;
Explicacion:
Primero el programa solicita el primer nmero, y llama a la funcin ingresar, esta
funcin leer lo que ingresemos por teclado como una cadena de caracteres y
entrara a comparar si es un numero entero con la funcin esNumerico, si este no
lo es se solicita que se lo vuelva a ingresar, una vez validado se transfiere el
valor ingresado a un entero, regresa y pide el segundo numero repitiendo el
procedimiento. Una vez que se tengan los 2 nmeros la funcin MCD entra a un
bucle que se repetir cuando el valor de n2 sea mayor a 0, obteniendo el mdulo
de n1y n2 y guardando en una variable temporal y al final devolver el MCD.
while (n2>0)
{
temporal = n1%n2;
n1 = n2;
n2 = temporal;
}
return n1;
45>0? Si
Temporal=21
N1=42
N2=21
21>0? Si
Temporal=0
N1=21
N2=0
0>0? No
Return 21
}
return true;
string crear() {
int num1, num2;
string nombre1;
bool a;
endl;
cout << "ingrese el nombre del archivo para guardar los datos" <<
do {
writer.close();
}
else {
cout << "error" << endl;
}
return nombre1;
}
void resultado(string nombre1) {
int a, b, c;
string nombre2;
bool n;
endl;
cout << "ingrese el nombre del archivo para guardar los datos" <<
do {
}
else {
cout << "error" << endl;
}
ofstream writer(nombre2+".txt");
if (writer.is_open()) {
writer << "la suma es " << c << endl;
writer.close();
}
else {
cout << "error" << endl;
}
}
else {
int i;
if (linea[0] == '+' || linea[0] == '-')//el primer caracter
puede ser un signo
i = 1;
else
i = 0;
while (i < longitud) {
if (!isdigit(linea[i])) {//compara si los caracteres son
digitos
}
}
}
return b;
}
i++;
b = false;
break;