Sei sulla pagina 1di 18

/

eb30_incremento1.cpp
// Este programa forma parte del tutorial de introducción al
lenguaje C++
// http://ehack.info/leguaje-c-introduccion/
// Este programa presenta el cuadrado de los números del 1 al
10
// Se ilustra el uso de incrementos
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en https://www.onlinegdb.com/online_c++_compiler

#include <iostream>

using namespace std;

int main()
{
int i = 1; //La inicialización de variables es muy
importante.

while (i <= 10)


{
cout<<"El cuadrado de : " << i << " es " << (i * i) <<
endl;
i = i + 1; //Prueba poniendo esta sentencia antes de
cout
}

return 0;
}

//
eb31_incremento2.cpp
// Este programa forma parte del tutorial de introducción al
lenguaje C++
// http://ehack.info/leguaje-c-introduccion/
// Se utiliza un contador para verificar las veces que se
introduce una contraseña
// Se ilustra el uso de incrementos
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en https://www.onlinegdb.com/online_c++_compiler

#include <iostream>

using namespace std;

int main()
{
int i = 1; //La inicialización de variables es muy
importante.
string contrasena = "1234"; //Establecemos la contraseña
válida
string contrauser; //Almacena la contraseña que escrie el
usuario
int intentosmax = 3; //Establecemos la cantidad máxima de
intentos permitidos

cout << "Escribe la contraseña de acceso, solo tienes " <<


intentosmax;
cout << " intentos, para escribir la contraseña correcta"
<< endl << endl;

while (i <= intentosmax)


{
cout << "Escribe la contraseña de acceso, intento " <<
i << " de " << intentosmax << endl;
cin >> contrauser;

if (contrauser == contrasena) {
cout << "Contraseña correcta, acceso otorgado!" <<
endl;
break;
} else {
cout << "***Contraseña incorrecta, acceso denegado!"
<< ", intento " << i << " ***" << endl;
i = i + 1;

if (i == intentosmax) {
cout << "Has excedido la cantidad de intentos
permitidos, el programa explotará!" << endl;
}
}
}

cout <<"El programa ha terminado" << endl;


return 0;
}

//
eb32_incremento3.cpp
// Este programa forma parte del tutorial de introducción al
lenguaje C++
// http://ehack.info/leguaje-c-introduccion/
// Se utiliza un contador y un acumulador para registra el
promedio de los valores introducidos
// Se ilustra el uso de incrementos
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en https://www.onlinegdb.com/online_c++_compiler

#include <iostream>

using namespace std;

int main()
{
int i = 0; //La inicialización de variables es muy
importante.
double total = 0; //Acumulador para la suma de valores
double entrada;
int valorTerminar = -9999; //valor para indicar el fin de
entradas
bool terminar = false;

cout << "Este programa promedia los valores que escribas "
<< endl;
cout << "utiliza sólo números, escribe " << valorTerminar
<< " para terminar" << endl << endl;

while (!terminar)
{
cout << "Escribe el valor " << endl;
cin >> entrada;

if (entrada == valorTerminar) {
terminar = true;
} else {
terminar = false;
i = i + 1;
total = total + entrada;
}
}

cout << "El total es: " << total << endl;
cout << "El total de valores introducidos es: " << i <<
endl;
cout << "El promedio es: " << (total / i) << endl;
return 0;
}

//
cpp_33_decremento1.cpp
// Este programa forma parte del tutorial de introducción al
lenguaje C++
// http://ehack.info/leguaje-c-introduccion/
// Se utiliza un contador para contar las palabras
introducidas
// Se ilustra el uso de DECREMENTOS
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en https://www.onlinegdb.com/online_c++_compiler

#include <iostream>

using namespace std;

int main()
{
int i = 1;
string palabra;
string texto;
int numPalabras; //valor para indicar el fin de
entradas
bool terminar = false;

cout << "Este programa mostrará en una línea las palabras


que escribas " << endl;
cout << "Primero indicarás cuántas palabras vas a
introducir" << endl << endl;

cout << "¿Cuántas palabras escribirás?" << endl;


cin >> numPalabras;

while (numPalabras > 0)


{
cout << "Escribe la pabra " << i << endl;
cin >> palabra;

i = i + 1; // No es indispensable pero lo utilizamos


para mejorar la presentación
texto = texto + palabra; //Concatenamos las palabras
introducidas
numPalabras = numPalabras - 1;
}

cout << "La cadena de texto es " << texto << endl;
return 0;
}

//
cpp_34_incremento4.cpp
// Este programa forma parte del tutorial de introducción al
lenguaje C++
// http://ehack.info/leguaje-c-introduccion/
// Este programa presenta el cuadrado de los números del 1 al
10
// Se ilustra el uso de operadores de incremento
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en https://www.onlinegdb.com/online_c++_compiler

#include <iostream>

using namespace std;

int main()
{
int i = 1; //La inicialización de variables es muy
importante.

while (i <= 10)


{
cout<<"El cuadrado de : " << i << " es " << (i * i)
<< endl;
++i; //reemplaza a la expresión i = i + 1;
}

return 0;
}

//
cpp_35_incremento5.cpp
// Este programa forma parte del tutorial de introducción al
lenguaje C++
// http://ehack.info/leguaje-c-introduccion/
// Se ilustra cómo se evalúa ++i, i++, --i, i--
// Se ilustra el uso de operadores de incremento
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en https://www.onlinegdb.com/online_c++_compiler

#include <iostream>

using namespace std;

int main()
{
int i = 1; //La inicialización de variables es muy
importante.
int j = 1;

cout << "El operador ++expresión y --expresión en acción"


<< endl;
cout << "Valores iniciales i = " << i << ", j = " << j <<
endl;
//Si ++ precede a la variable, por ejemplo. ++a, el valor
devuelto es
//el valor en el contador después que se ha incrementado.
cout << "++i =" << ++i << endl;
//Si ++ sigue a la variable, por ejemplo. a++, el valor
devuelto es
//el valor en el contador antes que se haya incrementado.
cout << "j++ =" << j++ << endl;
i = 1; //"reseteamos" valores
j = 1;
cout << "--i =" << --i << endl; //Decrementa i y lo
devuelve en i
cout << "j-- =" << j-- << endl; //Devuelve j antes que se
incremente

return 0;
}
//
cpp_36_OperadoresCompuestos1.cpp
// Este programa forma parte del tutorial de
introducción al lenguaje C++
// http://ehack.info/leguaje-c-introduccion/
// Este programa presenta el uso de los operadores
de asignación compuesta
// 2017, Por http://about.me/carlosgbr
// Versión 1
// Compilado en
https://www.onlinegdb.com/online_c++_compiler

#include <iostream>

using namespace std;

int main()
{
int i = 10;
int j = 2;

i += j; //i = 12, equivale a i = i + j


cout << i << endl;

i = 10;
j = 2;

i -= j; //i = 8, equivale a i = i - j
cout << i << endl;

i = 10;
j = 2;

i *= j; //i = 20, equivale a i = i * j


cout << i << endl;

i = 10;
j = 2;
i /= j; //i = 5, equivale a i = i / j
cout << i << endl;

i = 10;
j = 2;

i %= j; //i = 0, equivale a i = i % j
cout << i << endl;

return 0;
}

C++, introduccion de datos, contadores y acumuladores

BORLAND C++;
PROGRAMA 8: Introducción de datos y Utilización de contadores y
acumuladores

Contador:
Un contador es una variable cuyo valor se incrementa o decrementa en una cantidad
constante cada vez que se produce un determinado suceso o acción. Los contadores se
utilizan con la finalidad de contar sucesos o acciones internas de un bucle; deben realizar
una operación de inicialización y posteriormente las sucesivas de incremento o decremento
del mismo. La inicialización consiste en asignarle al contador un valor inicial. Se situará
antes y fuera del bucle.

estructura:

int cont = 0
inicio del bucle
i = i +1
fin del bucle

Acumulador:
Es una variable que suma sobre sí misma un conjunto de valores para de esta manera tener
la suma de todos ellos en una sola variable. La diferencia entre un contador y un acumulador
es que mientras el primero va aumentando de uno en uno, el acumulador va aumentando
en una cantidad variable.

estructura:

int acum = 0
inicio del bucle
acum = acum + valor
fin del bucle

ejemplo:
el siguiente programa pedira que ingresen datos personales para poder ser aceptado en una
escuela X, se utilizarán las condiciones IF-ELSE, DO-WHILE, tambien el uso del AND y el OR,
tambien el uso de contadores para saber el numero de intentos, de los aceptados y rechazados.
Los datos al final seran mostrados en pantalla asi como el recuento de los contadores.

#include <conio.h>

#include <iostream.h>

#include <stdio.h>

#include <windows>

/*ALICIA CHAVEZ ROMERO

2do CUATRIMESTRE "C"

MECATRONICA

REGISTRO DE ALUMNOS

*/

char n[30],d[30],i[40],st[10],e,s,r,res;

int ed=0;

float p=0;

short int cnt1,cnt2,cnt3;

void main()

{
cnt1==0;

cnt2==0;

cnt3==0;

do

clrscr();

cout<<" ####### BIENVENIDO A NUESTRA INSTITUCION #######"<<endl;


cout<<" ############## UTVM ###################"<<endl;
cout<<"\n INTRODUCCION DE DATOS PERSONALES"<<endl;
cout<<"\n........INGRESAR NOMBRE COMPLETO......"<<endl;
cin>>n;
cout<<"\n........INGRESAR DIRECCION"<<endl;
cin>>d;
cout<<"\n........INGRESAR SEXO"<<endl;
cout<<"..f=Femenino.........m=Masculino.."<<endl;
cin>>s;
cnt3++;
if (s!='f' && s!='m')
{
do
{
clrscr();
cout<<"\n Lo sentimos dato invalido"<<endl;
cout<<"\n........INGRESAR SEXO"<<endl;
cout<<"..f=Femenino.........m=Masculino.."<<endl;
cin>>s;
} while (s!='f' && s!='m');
cout<<"\n........INGRESAR EDAD"<<endl;
cin>>ed;
if(ed>=17&&ed<=40)
{
cout<<".......INGRESAR ESTADO CIVIL"<<endl;
cin>>st;
clrscr();
cout<<"\n\nINTRODUCCION DE DATOS ESCOLARES"<<endl;
cout<<"\n\n.......INGRESAR ESCOLARIDAD"<<endl;
cout<<" P=Primaria\n S=Secundaria\n R=Preparatoria\n "<<endl;
cin>>e;
if(e=='r' || e=='R')
{
cout<<"\n......INGRESE NOMBRE DE ESCUELA DE PROCEDENCIA"<<endl;
cin>>i;
cout<<"\n......INGRESE PROMEDIO DE LA ESCUELA DE
PROCEDENCIA"<<endl;
cin>>p;
if(p>=7)
{
cout<<"ALUMNO INSCRITO"<<endl;
cnt1++;
cout<<"NOMBRE:...."<<n<<endl
cout<<"DIRECCION:...."<<d<<endl;
cout<<"SEXO:...."<<s<<endl;
cout<<"EDAD:...."<<ed<<endl;
cout<<"ESTADO CIVIL:...."<<st<<endl;
cout<<"ESCOLARIDAD:....Preparatoria"<<endl;
cout<<"ESCUELA DE PROCEDENCIA:...."<<i<<endl;
cout<<"PROMEDIO DE ESCUELA DE PROCEDENCIA:...."<<p<<endl;
}
else
{
cout<<"Solo admitimos alumnos con promedio mayor a 7"<<endl;
}
}
else
{
cout<<"Solo admitimos alumnos con preparatoria terminada"<<endl;
}
}
else
{
cout<<"Solo admitimos alumnos con edad mayor a 17 años y menor a 40
años"<<endl;
}
}
else
{
cout<<"\n........INGRESAR EDAD"<<endl;
cin>>ed;
if(ed>=17&&ed<=40)
{
cout<<".......INGRESAR ESTADO CIVIL"<<endl;
cin>>st;
clrscr();
cout<<"\n\nINTRODUCCION DE DATOS ESCOLARES"<<endl;
cout<<"\n\n.......INGRESAR ESCOLARIDAD"<<endl;
cout<<" P=Primaria\n S=Secundaria\n R=Preparatoria\n "<<endl;
cin>>e;
if(e=='r' || e=='R')
{
cout<<"\n......INGRESE NOMBRE DE ESCUELA DE PROCEDENCIA"<<endl;
cin>>i;
cout<<"\n......INGRESE PROMEDIO DE LA ESCUELA DE
PROCEDENCIA"<<endl;
cin>>p;
if(p>=7)
{
clrscr();
cout<<"ALUMNO INSCRITO"<<endl;
cnt1++;
cout<<"NOMBRE:...."<<n<<endl;
cout<<"DIRECCION:...."<<d<<endl;
cout<<"SEXO:...."<<s<<endl;
cout<<"EDAD:...."<<ed<<endl;
cout<<"ESTADO CIVIL:...."<<st<<endl;
cout<<"ESCOLARIDAD:....Preparatoria"<<endl;
cout<<"ESCUELA DE PROCEDENCIA:...."<<i<<endl;
cout<<"PROMEDIO DE ESCUELA DE PROCEDENCIA:...."<<p<<endl;
}
else
{
cout<<"Solo admitimos alumnos con promedio mayor a 7"<<endl;
cnt2++;
}
}
else
{
cout<<"Solo admitimos alumnos con preparatoria terminada"<<endl;
cnt2++;
}
}
else
{
cout<<"Solo admitimos alumnos con edad mayor a 17 años y menor a 40
años"<<endl;
cnt2++;
}
}
cout<<"\n DESEA VOLVER A INTRODUCIR DATOS DE OTRO
ASPIRANTE"<<endl;
cout<<".....s=si......n=no...."<<endl;
cin>>res;
}while(res=='s'||res=='S');
cout<<"INTENTOS:... "<<cnt3<<endl;
cout<<"ACEPTADOS:... "<<cnt1<<endl;
cout<<"RECHAZADOS:.. "<<cnt2<<endl;
getche();
}

Se muestran las imagenes del programa ejecutado.


portada principal

llenado de datos personales y se ejecuta la primer condicion con respecto a la eda debe de ser mayor a 17 años en este caso si cumplio
la condicion asi q siguio ejecutandose el programa.

siguiente condicion( la seleccion de la escolaridad), si no hubiese sido la R, detendria el proceso de inscripción


al final se imprimen todos los datos para ser confirmados y se observa la funcion del DO-WHILE

1.13 Contadores y Acumuladores


Veamos el siguiente ejercicio:

Realizar un programa que permita al usuario ingresar las temperaturas medidas para un lugar en
una serie de días y calcule el promedio de dichas temperaturas. No se sabe cuántas mediciones se
ingresarán; para finalizar se indica -300 como valor de temperatura.

El programa constará de un ciclo que se repetirá ingresando las sucesivas temperaturas. Para
obtener el promedio se necesita saber la cantidad total de mediciones y la suma total de las
mediciones, para lo que utilizaremos las variables cant y suma:

#include "stdafx.h"
#include <iostream>
using namespace std;

void main()
{
int temp,cant,suma;
float prom;
cant = 0;
suma = 0;

cout<<"Ingrese la temperatura(-300 para terminar):";


cin>>temp;

while (temp!=-300)
{
cant = cant + 1;
suma = suma + temp;
cout<<"Ingrese la temperatura(-300 para terminar):";
cin>>temp; //SIEMPRE dentro del ciclo while debe haber una instrucción
que
// modifique la condición del mismo
}
prom = (float) suma/cant; // para forzar la división float
cout<<"El promedio de temperaturas es: "<<prom;

cin>>temp;
}

La variable cant incrementa su valor en 1 cada vez que se ejecuta el ciclo. Está contando la
cantidad de veces que se ejecuta el ciclo.
Si por ejemplo quisiera saber la cantidad de días de más de 30°C, debería hacer:

if (temp > 300)


{
cant30 = cant30 + 1;

Y la variable cant30 tendría la cantidad deseada. Estas variables, que cuentan la cantidad de
veces que el programa pasa por un punto dado se llaman contadores.
Siempre se inicializan en cero y se incrementan en uno en el lugar deseado.
Análogamente, la variable suma no se incrmenta en 1, sino en el valor de de temp; se
llama acumulador.

Contadores, acumuladores y centinelas.


Fercho191
2629
¿Has terminado el curso de programación básica y buscas saber mas de la
programación? Me gustaría aportar a la comunidad con conocimiento en el área
de desarrollo con algunos conceptos sencillos en el mundo de la programación.
A medida que se van presentando problemas y los vas resolviendo con un código
del cual te sientes orgulloso, llegas a darte cuenta que hay ciertos patrones que
suelen aparecer en múltiples códigos, ciertas variables que tienen
comportamientos similares sin importar la naturaleza del algoritmo.
Voy a explicar 3 conceptos interesantes, contadores, acumuladores y centinelas.
Contadores
Un contador, no es mas que una variable que cuenta (¿Parece obvio, no?). Los
contadores suelen aparecer en ciclos o funciones recursivas (Tema bastante
interesante).
var i = 1;
var par = 0;
while (i <= 10) {
if ( i % 2 == 0 ){
par++;
}
i++;
}
En este código, el contador es la variable “par”, normalmente son inicializadas en
0 antes de un ciclo y suelen aumentar su valor (par++) si se cumplen ciertas
condiciones, en este caso, cuenta la cantidad de números pares que hay entre 1 y
10
Acumuladores
Los acumuladores son variables que almacenan datos de una suma continua, su
característica mas común es que su valor suele ser siempre una suma o resta del
valor actual con un dato nuevo.
var notas = [8, 7, 10, 9, 5];
var acum = 0;
var promedio;
for (var i = 0; i < notas.length; i++){
acum = acum + notas[i];
}
promedio = acum / notas.length;
La variable que actúa como contador es “acum”, normalmente se inicializan en 0
antes de una ciclo y suelen sumar su valor actual con un nuevo dato (acum = acum
+ notas[i]). En este caso, suma todas las notas al recorrer el array notas y luego
calcula el promedio.
Centinelas
Tambien llamados “banderas”, los centinelas son variables, normalmente de tipo
lógicas (boolean), conservan un estado hasta que un evento requiera cambiarlo y
ejecutar otra funcionalidad.
var arrelo = [1, 6, 8, 7, 9, 12];
var band = false;
var i = 0;
while (!band && i < arreglo.length){
if (arreglo[i] == 9){
band = true;
}else{
i++;
}
}
if (band){
console.log('Encontramos el numero 9')
}else{
console.log('No encontramos el numero 9')
}
La variable “band” es la que vive como un centinela o bandera. Es una variable
lógica que es inicializada en falso y hace que el ciclo while se ejecute hasta
conseguir el numero 9 dentro de la variable “arreglo”. Podemos ver que luego del
ciclo, preguntamos por el valor de band para saber si existe o no el numero 9
dentro de “arreglo”
Espero poder haber ayudado a comprender estos pequeños conceptos que les
van a presentar en muchos proyectos a lo largo de su carrera como programador.

Potrebbero piacerti anche