David Ponce- Programacion Estructurada
Translate
viernes, 2 de enero de 2015
martes, 9 de diciembre de 2014
Introducción a los Arreglos.
Arreglos:
Un arreglo o array es una colección o conjunto de variables
relacionadas entre sí, por el hecho de que todas tienen el mismo nombre y son
del mismo tipo.
Un arreglo es una variable capaz de
guardar uno o más valores del mismo tipo. Un arreglo consta de
posiciones de memoria de las cuales guardaremos o leeremos información.
Resulta mucho más eficiente trabajar con arreglos
ya que si se necesita trabajar con muchas variables nuestro código funcionara
pero no será eficiente como lo sería con arreglos ya que en una manera más
sintetizada los arreglos son un conjunto de datos del mismo tipo almacenados en
un espacio de memoria, y resulta mucho más eficiente ya que podemos simplemente
con una variable almacenar n datos.
array: VentaSemanal
+------+
| dato | <-- componente 0, ( fila 0 )
|------|
| dato | <-- componente 1, ( fila 1 )
|------|
| dato | ...
|------|
| dato | ...
|------|
| dato | ...
|------|
| dato | ...
|------|
| dato | <-- componente 6, ( fila 6 )
|------|
Sintaxis:
tipo identificador [tamaño] = { lista de inicialización } ;
donde,
·
tipo se refiere al tipo de datos que contendrá
el array. El tipo puede ser cualquiera de los tipos estándar (char, int, float,
etc.) o un tipo definido por el usuario. Es más, el tipo del array puede ser de
una estructura creada con: struct, union y class.
·
identificador se refiere al nombre que le
daremos al array.
·
tamaño es opcional e indica el número de
elementos que contendrá el array. Si un array se declara sin tamaño, el mismo
no podrá contener elemento alguno a menos que en la declaración se emplee una
lista de inicialización.
·
lista de inicialización es opcional y se usa
para establecer valores para cada uno de los componentes del array. Si el array
es declarado con un tamaño específico, el número de valores inicializados no
podrá ser mayor a dicho tamaño.
Ejemplos:
int intA[5];
long longA[5] = { 1, 2, 3, 4, 5 };
char charA[3] = { 'a', 'b', 'c' };
Los
arreglos que veremos por el momento serán unidimensionales en otras palabras
solo una fila de datos, ya que mas adelante podremos ver arreglos
bidimensionales o matrices.
Utilizaciones:
El programa pide al usuario ingresar elementos para el
vector A, que posteriomente serán mostrados en pantalla mediante un ciclo for
notese que es muy importante la utilización de ciclos for en arreglos ya que básicamente
son gracias a ellos que nosotros podemos procesar, leer y guardar información.
Vídeo de introducción a los arreglos:
Referencias bibliográficas:
Wikilibrosl. (2014). “Arreglos en C”.
Recuperado el 10 de diciembre de 2014 de http://es.wikibooks.org/wiki/Programaci%C3%B3n_en_C%2B%2B/Arrays_y_cadenas_de_texto
sábado, 6 de diciembre de 2014
Ejercicio Resuelto de Arreglos Fundamentos de la Programación piensa en C.
Escribe un
programa en C que, al recibir como dato un arreglo unidimensional de tipo
entero de N elementos, determine si el arreglo es palíndromo.
Análisis del
problema:
Necesitamos un programa que nos ayude conocer si el arreglo ingresado es palíndromo,
en otras palabras si este arreglo se lee de igual forma de izquierda a derecha
que de derecha a izquierda quiere decir la misma información contenida leyendo
en ambos sentidos.
Datos de
entrada: Un
arreglo unidimensional de n elementos.
Datos de
salida: El
arreglo unidimensional con un mensaje que nos dirá si es palíndromo o no.
Datos
adicionales:
Ninguno.
Proceso:
El
usuario introduce el número del arreglo, y este se evalúa de acuerdo a la
condición de no exceder el rango determinado. El proceso de ingreso de los
elementos se lo logra con un ciclo for, que mediante el podemos inicializarlo
en cero y con la condición que sea menor al número de elementos ingresados y su
respectivo incremento.
Una
vez ingresado evaluamos la primera posición con la última, ya que si es palíndromo
sus elementos deben ser iguales siendo el primero con el último, el segundo con
el penúltimo y así respectivamente.
Para
esto usamos dos variables en un ciclo for inicializadas la primera en cero y la
otra en n-1 (ya que hablamos de posición y no de tamaño), la condición seria de
que sea la posición cero igual a la de n-1, y el respectivo aumento en ambas
variables. Si cumplen con estas condiciones se asignó una variable bandera en
la que le asignamos un valor, en caso de no cumplir con estas condición,
simplemente la variable quedara vacía.
Al
finalizar el ciclo for realizamos una condición en la que establecemos que si
la variable es el valor que ingresamos en la condición de esta manera la
bandera nos desplegara el mensaje de “es palíndromo” junto con nuestro vector,
caso contrario la variable será nula y nos desplegara un mensaje de “no es palíndromo” y nuestro vector.
Diagrama de flujo:
//Algoritmo: Palindromo
//Nombre:David Ponce
//Fecha: 04/12/2014
/* Descripcion: El usuario introduce el número del arreglo, y este se evalúa de acuerdo a la condición de no exceder el rango determinado. El proceso de ingreso
de los elementos se lo logra con un ciclo for, que mediante el podemos inicializarlo en cero y con la condición que sea menor al número de elementos ingresados y
su respectivo incremento.
Una vez ingresado evaluamos la primera posición con la última, ya que si es palíndromo sus elementos deben ser iguales siendo el primero con el último, el segundo
con el penúltimo y así respectivamente.
Para esto usamos dos variables en un ciclo for inicializadas la primera en cero y la otra en n-1 (ya que hablamos de posición y no de tamaño), la condición seria
de que sea la posición cero igual a la de n-1, y el respectivo aumento en ambas variables. Si cumplen con estas condiciones se asignó una variable bandera en la
que le asignamos un valor, en caso de no cumplir con estas condición, simplemente la variable quedara vacía.
Al finalizar el ciclo for realizamos una condición en la que establecemos que si la variable es el valor que ingresamos en la condición de esta manera la bandera
nos desplegara el mensaje de "es palíndromo" junto con nuestro vector, caso contrario la variable será nula y nos desplegara un mensaje de "no es palíndromo" y
nuestro vector.*/
#include <stdio.h>
#define MAX 100
main()
{
int a[MAX];
int i, j=0, k, b, n;
printf("Ingrese el tamano del arreglo: ");
scanf("%d", &n);
printf("\n");
printf("\n");
for (i=0;i<n;i++)
{
printf("Ingrese el elemento de A en la posicion %d: ", i);
scanf("%d", &a[i]);
}
printf("\nLos valores de A son: \n ");
printf("\n");
for (i=0;i<n;i++)
{
printf("\t%d", a[i]);
}
printf("\n");
printf("\n");
k=n-1;
for(j,k;a[j]==a[k];j++,k++)
{
b=1;
}
if (b==1)
{
printf(" Por lo tanto el vector A es pailindrome");
}
else
{
printf(" Por lo tanto el vector A NO es pailindrome");
}
}
Ejecutable:
martes, 2 de diciembre de 2014
Sentencia Repetitivas Introduccion al Lazo for.
El ciclo For es una de las instrucciones más sencillas de aprender, y
consiste en utilizar mayormente “rangos” en los cuales se define el número de
iteraciones que se pueden hacer en este ciclo.
El lazo es una
sentencia repetitiva, típicamente usada para arreglos, ciclos y ciclos inditos.
El lazo for funciona
exactamente igual al lazo while, pero este es mucho más compacto y es más
recomendado usarlo para este tipo de utilidades.
La sintaxis del lazo
for es la siguiente:
Int i;
Declaración y sintaxis
1
|
for(inicio;mientras;incremento)
|
|
2
|
{
|
3
|
//CODIGO A EJECUTAR
|
|
4
|
}
|
|
Donde el inicio es la declaración de una variable que funciona como un
“contador” mientras ejecutamos el ciclo. Continuamente el “mientras” especifica
los valores o el rango de valores que puede tomar el contador de “inicio” y el
“incremento” especifico cuanto se va a incrementar el contador con cada
iteración, lo que indicaría que eventualmente el contador saldría de su posible
rango de valores y terminaría el ciclo.
En algunos textos lo
toman como un diagrama de decisión con una línea en su esquina dentro de la
figura de diamante.
Ejemplo:
Imprimir
un contador con decremento de 0 a -9
1
|
for(int x=0;x<10;x++)
|
|
2
|
{
|
3
|
printf("El
contador X vale: %d\n",x);
|
|
4
|
}
|
En donde se inicializa
la variable x en cero seguido por la condición de x menor que 10 y el
incremento de x, entonces el ciclo empezaría
primero con la inicialización, después la se evaluaría la condición y entraría al
ciclo en donde se imprimirá x, y después x aumentara y regresara al ciclo for
hasta que el aumento no cumpla con la condición
dispuesta, entonces el ciclo for estaría terminado.
Video Turorial de utilizacion de ciclo for:
REFERENCIAS BIBLIOGRAFICAS:
codigoprogramacion. (2013). "Ciclo For".Recuperado el 02 de diciembre de 2014 de http://codigoprogramacion.com/cursos/tutoriales-c/ciclo-for-en-c-y-ejemplos.html#.VH_RcfnF_-s
martes, 25 de noviembre de 2014
Libro: Fundamentos de la programación piensa en C, Cairo (2014). Capítulo: 3
Construye un
diagrama de flujo y el correspondiente programa en C que, al recibir como datos
el peso, la altura y el sexo de N personas que pertenecen a un estado de la
República Mexicana, obtenga el promedio del peso (edad ≥ 18) y el promedio de
la altura (edad ≥ 18), tanto de la población masculina como de la femenina.
Se ingresa 1
si es hombre y 0 si es mujer.
Análisis del
problema:
Necesitamos un programa que nos ayude a determinar un promedio de altura y un
promedio de peso entre hombres y mujeres ingresados, ya sea en grandes
cantidades o simplemente pocas personas. El programa clasificara cada persona
de acuerdo a su sexo y si cumple con la condición de que sean mayores o sean de
una edad de 18 años, al final el programa dará salida al promedio general de
peso y altura de hombres y mujeres.
Datos de
entrada: Edad,
sexo, altura, peso.
Datos de
salida: Promedio
general de altura y peso de hombres y mujeres.
Datos
adicionales:
Ninguno.
Proceso:
El
programa cuenta con dos contadores para hombres y para mujeres respectivamente
con cuatro variables que van a tomar el rol de acumuladoras, ya que se
necesitara almacenar el peso y la altura de cada persona de edad mayor o igual
a 18 sea hombre o mujer, además si el sexo o la edad son valores incorrectos el
programa desplegara un mensaje de error y se deberá volver a escribir los datos,
el programa utilizara además un ciclo do while en otras palabras una sentencia
repetitiva para cada persona que ingrese al sus datos. En el ciclo do-while será
evaluada la variable sexo con una sentencia selectiva, guardando así los datos
introducidos en los acumuladores y en los contadores.
La condición del ciclo do-while es si la
respuesta del usuario es de terminar entonces este procederá a la finalización
del programa y empezara a hacer el cálculo de los promedios de la altura y el
peso de cada hombre y cada mujer ingresados mediante cada acumulador y cada
contador respectivamente, si en el caso de que exista valores nulos por parte
de hombres o mujeres o ambos a la vez el programa utilizara sentencias
condicionales, permitiendo así que el programa de salida a valores de cero y no
valores no definidos. Por último el programa da salida al promedio de cada
hombre y mujer respecto a su peso y a su altura
Diagrama de flujo:
Programa en C:
Codigo fuente:
//Algoritmo: Promedio
//Nombre:David Ponce
//Fecha: 24/11/2014
/* Descripcion: El programa cuenta con dos contadores para hombres y para mujeres respectivamente con cuatro varibles que van a tomar el rol de acumuladoras,
ya que se necesitara almacenar el peso y la altura de cada persona de edad mayor o igual a 18 sea hombre o mujer,
ademas si el sexo o la edad son valores incorrectos el programa desplegara un mensaje de error y se debera volver a escribir los datos,
el programa utilizara ademas un ciclo do while en otras palabras una sentencia repetitiva para cada persona que ingrese al sus datos. En el ciclo do while
sera evaluada la variable sexo con una sentencia selectiva, guardando asi los datos introducidos en los acumuladores y en los contadores. La
condicion del ciclo do while es si la respuesta del usuario es de terminar entonces este procedera a la finalizacion del programa y empezara a hacer el
calculo de los promedios de la altura y el peso de cada hombre y cada mujer ingresados mediante cada acumulador y cada contador respectivamente, si en el caso
de que exista valores nulos por parte de hombres o mujeres o ambos a la vez el programa utilizara sentencias condicionales, permitiendo asi que el programa
de salida a valores de cero y no valores no definidos. Por ultimo el programa da salida al promedio de cada hombre y mujer respecto a su peso y a su altura.*/
#include <stdio.h>
#include <math.h>
main()
{
float phombresp=0, pmujeresp=0, phombresh=0, pmujeresh=0, p=0, h=0, pthombresp, pthombresh, ptmujeresh, ptmujeresp;
int totalh=0, totalm=0, sex, e, r;
do
{
printf("\n Ingrese su sexo 1 Hombres, 0 Mujeres: ");
scanf("%d", &sex);
printf("\n Ingrese su edad: ");
scanf("%d", &e);
printf("\n Ingrese su altura: ");
scanf("%f", &h);
printf("\n Ingrese su peso: ");
scanf("%f", &p);
if ((sex==1||sex==0)&&e>=18)
{
switch (sex)
{
case 0:
pmujeresh=pmujeresh+h;
pmujeresp=pmujeresp+p;
totalm++;
break;
case 1:
phombresp=phombresp+p;
phombresh=phombresh+h;
totalh++;
break;
}
}
else
{
printf("\n Datos incorrectos");
}
printf("\n Hay mas personas? Presione 1 para continuar, 0 para terminar ");
scanf("%d", &r);
}while (r==1);
if ((pmujeresp!=0&&pmujeresh!=0)&&(phombresp!=0&&phombresh!=0))
{
pthombresp=phombresp/totalh;
pthombresh=phombresh/totalh;
ptmujeresp=pmujeresp/totalm;
ptmujeresh=pmujeresh/totalm;
printf("\n El promedio del peso de los hombres es %.2f ", pthombresp);
printf("\n El promedio de la altura de los hombres es %.2f ", pthombresh);
printf("\n El promedio del peso da las mujeres es %.2f ", ptmujeresp);
printf("\n El promedio de la altura de las mujeres es %.2f ", ptmujeresh);
}
else
{
if((pmujeresp!=0&&pmujeresh!=0)&&(phombresp==0&&phombresh==0) )
{
pthombresp=0;
pthombresh=0;
ptmujeresp=pmujeresp/totalm;
ptmujeresh=pmujeresh/totalm;
printf("\n El promedio del peso de los hombres es %.2f ", pthombresp);
printf("\n El promedio de la altura de los hombres es %.2f ", pthombresh);
printf("\n El promedio del peso da las mujeres es %.2f ", ptmujeresp);
printf("\n El promedio de la altura de las mujeres es %.2f ", ptmujeresh);
}
else
{
pthombresp=phombresp/totalh;
pthombresh=phombresh/totalh;
ptmujeresp=0;
ptmujeresh=0;
printf("\n El promedio del peso de los hombres es %.2f ", pthombresp);
printf("\n El promedio de la altura de los hombres es %.2f ", pthombresh);
printf("\n El promedio del peso da las mujeres es %.2f ", ptmujeresp);
printf("\n El promedio de la altura de las mujeres es %.2f ", ptmujeresh);
}
}
getch();
}
martes, 18 de noviembre de 2014
Programacion Estructurada Libro: Fundamentos de la programación piensa en C, Cairo (2014) Programa para determinar el salario.
En algunas oficinas del gobierno
pagan horas extra a los burócratas, además del salario correspondiente. Escribe
un diagrama de flujo y el correspondiente programa en C que permita calcular la cantidad a pagar a un trabajador tomando
en cuenta su salario y las horas extra trabajadas. Las horas extra se calculan
en función de la tabla 2.8. Cada trabajador puede tener como máximo 30 horas
extra, si tienen más, sólo se les pagarán las primeras 30. Los trabajadores con
categoría 4 o mayor a 4 no pueden recibir este beneficio.
TABLA 2.8
Categoría trabajador
Hora extra
1
$40
2
$50
3
$85
Análisis del problema: Necesitamos un programa que nos ayude a conocer el
valor del salario total de un burócrata dependiendo de su categoría, de manera
que debemos establecer condiciones para el número de horas base y secuencias
selectivas para escoger la categoría necesaria el programa desplegara el valor
del salario total calculado.
Datos de entrada: Numero entero de la categoría, numero entero de las
horas extra trabajadas, número real del salario.
Datos de salida: Valor total del salario.
Datos adicionales: Ninguno.
Proceso:
El usuario introduce los
datos requeridos que son el número de la categoría, el salario y las horas
extras, estas dependiendo su número van a tomar un factor importante ya que
solo se aceptan 30 horas extras como máximo, además se debe tener en cuenta que
se deben usar sentencias condicionales y selectivas para conocer las horas
extra base como también la categoría a las que pertenece, el programa calculara
el valor del salario total y lo imprimirá.
Diagrama de flujo:
Programa en C:
Codigo fuente:
//Algoritmo: Salario
//Nombre:David Ponce
//Fecha: 11/11/2014
/* Descripcion: El usuario introduce los datos requeridos que son el nuemro de la categoría, el salario y las horas extras, estas dependiendo
su numero van a tomar un factor importante ya que solo se aceptan 30 horas extras como máximo, además se debe tener en cuenta que se deben usar
sentencias condicionales y selectivas para conocer las horas extra base como también la categoría a las que pertenece, el programa calculara el
valor del salario total y lo imprimirá.*/
#include <stdio.h>
main()
{
int hx, cat;
float sal, salt;
printf("Ingrese por favor su salario \n ");
scanf("%f", &sal);
printf("Ingrese el numero de horas extra \n ");
scanf("%d", &hx);
printf("Ingrese su categoria \n ");
scanf("%d", &cat);
if (hx>30)
{
switch (cat)
{
case 1:
salt=1200+sal;
break;
case 2:
salt=1500+sal;
break;
case 3:
salt=2550+sal;
break;
case 4:
salt=sal;
break;
default:
salt=sal;
break;
}
}
else
{
switch (cat)
{
case 1:
salt=(hx*40)+sal;
break;
case 2:
salt=(hx*50)+sal;
break;
case 3:
salt=(hx*85)+sal;
break;
case 4:
salt=sal;
break;
default:
salt=sal;
break;
}
}
printf("Su salario total es %.3f", salt);
getch();
}
Suscribirse a:
Entradas (Atom)