Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Practicas 5 y 6 Esta Si

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 26

Instituto Politécnico Nacional

Escuela Superior de Ingeniería


Mecánica y Eléctrica Unidad Zacatenco

Ingeniería en Comunicaciones y Electrónica

Laboratorio Fundamentos de programación

Práctica No. 6
“ARREGLOS”

Grupo: 1CM8

Integrantes:
Alan Octavio Rico Martinez

Juan Lopez Alonso

Maestro:
Pablo Posadas Durán

04 de octubre del 2019


Objetivo:
El alumno conocerá y aplicará el concepto de arreglos unidimensionales y
bidimensionales para resolver problemas de ingeniería en Lenguaje C.

Introducción:
Un arreglo o array es una colección ordenada de objetos, llamados elementos
del arreglo, todos del mismo tipo, esto es, el arreglo se puede considerar
como un conjunto de variables agrupadas del mismo tipo. Los arreglos
unidimensionales se conocen como vectores y los arreglos bidimensionales
como matrices.

Desarrollo:
EJERCICIOS PROPUESTOS.
Capturar y probar los ejercicios resueltos.
Para cada ejercicio realizar:
Tablas de Entradas y Salidas
Algoritmo (Pseudocódigo)
Programa en C

1. Desarrollar programa que calcule el complemento a uno de un número


binario capturado por el usuario, estos números se deben almacenar en un
arreglo para su representación Considere un registro de 8 bits, es decir, cada
posición del arreglo representa un bit.

Por ejemplo:
Número Binario: {0,0,1,1,1,1,0,1}
Complemento a 1: {1,1,0,0,0,0,1,0}

Análisis del problema:

Entrada

Salida

Método
Requisito

Restricción

Diagrama:

Código fuente:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own
getch, system("pause") or input loop */

int main(int argc, char *argv[]) {


int numero[8],i;
for(i=0;i<8;i++)
{
printf("\ndame el valor del bit %d del numero
binario:",7-i);
scanf("%d",&numero[i]);
}
for(i=0;i<8;i++)
{
if(numero[i]==0)
{
numero[i]=1;
}
else
{
numero[i]=0;
}
}

printf("el complemento es : %d %d %d %d %d %d %d %d
",numero[0],numero[1],numero[2],numero[3],numero[4],numer
o[5],numero[6],numero[7]);

return 0;
}

2. Desarrollar programa que calcule el complemento a dos de un número


binario capturado por el usuario, estos números se deben almacenar en un
arreglo para su representación. Considere un registro de 8 bits, es decir, cada
posición del arreglo representa un bit.

Por ejemplo:
Número Binario: {0,0,1,1,1,1,0,0}
Complemento a 2: {1,1,0,0,0,1,0,0}

Análisis del problema:

Entrada

Salida

Método

Requisito

Restricción
Diagrama:

Código fuente:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own
getch, system("pause") or input loop */

int main(int argc, char *argv[]) {


int numero[8],i,x;
for(i=0;i<8;i++)
{
printf("\ndame el valor del bit %d del numero
binario:",7-i);
scanf("%d",&numero[i]);
}
for(i=0;i<8;i++)
{
if(numero[i]==0)
{
numero[i]=1;
}
else
{
numero[i]=0;
}

i=1;
x=0;
while(i==1&&x<8)
{

if (numero[x]==1)
{
numero[x]=0;
}
else
{
numero[x]=1;
i=0;

x++;
}

printf("el complemento es : %d %d %d %d %d %d %d %d
",numero[7],numero[6],numero[5],numero[4],numero[3],numer
o[2],numero[1],numero[0]);
return 0;
}

3. Desarrollar programa que invierta una cadena de caracteres, la cadena de


caracteres la captura el usuario.

Por ejemplo:
Cadena: Hola mundo
Cadena invertida: odnum aloH

Análisis del problema:

Entrada

Salida

Método

Requisito

Restricción

Diagrama:

Código fuente:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own
getch, system("pause") or input loop */

int main(int argc, char *argv[]) {


char palabra[10],palabrain[10];
int i;
printf("dame una palabra con 10 caracteres(el espacio
tambien cuenta ):");
gets(palabra);

for(i=0;i<10;i++)
{
palabrain[9-i]=palabra[i];

printf("\nla palabra es : %s \n la palabra invertida


es : %s",palabra,palabrain);

return 0;
}

4. Desarrollar programa que imprima la intersección de dos conjuntos de


números definidos estáticamente dentro del programa.

Por ejemplo:
Sean A={5,6,7,3,12,67} y B={6,7,9,12,45,34,56}
A∩B={6,7,12}

Análisis del problema:

Entrada

Salida

Método

Requisito
Restricción

Diagrama:

Código fuente:
include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own
getch, system("pause") or input loop */

int main(int argc, char *argv[]) {


int
cadena1[]={5,6,7,3,64,55,32,4,15,8},cadena2[]={5,3,12,64,79,6,8
,34,54,60};
int numero[]={0,0,0,0,0,0,0,0,0,0},i,x,y=0;

for(i=0;i<10;i++)
{
for(x=0;x<10;x++)
{
if(cadena1[i]==cadena2[x])
{
numero[y]=cadena1[i];
y++;
}
}
}

printf("\nla intersepcion es :");

for(i=0;i<10;i++)
{
if(numero[i]!=0)
{
printf("%d ",numero[i]);
}
}

return 0;
}

5. Desarrollar programa que imprima la unión de dos conjuntos de números


definidos
estáticamente dentro del programa.

Por ejemplo:
Sean A={5,6,7,3,12,67} y B={6,7,9,12,45,34,56}
AUB={5,6,7,3,12,67,9,45,34,56}

Análisis del problema:

Entrada

Salida

Método

Requisito

Restricción

Diagrama:
Código fuente:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own
getch, system("pause") or input loop */

int main(int argc, char *argv[]) {


int
cadena1[]={5,6,7,3,64,55,32,4,15,8},cadena2[]={5,3,12,64,79,6,8
,34,54,60};
int i,x;

for(i=0;i<10;i++)
{
for(x=0;x<10;x++)
{
if(cadena1[i]==cadena2[x])
{
cadena2[x]=0;

}
}

printf("\nla intersepcion es :");

for(i=0;i<10;i++)
{
if(cadena1[i]!=0)
{
printf("%d ",cadena1[i]);
}
}

for(i=0;i<10;i++)
{
if(cadena2[i]!=0)
{
printf("%d ",cadena2[i]);
}
}

return 0;
}

6. Desarrollar programa que imprima la diferencia de conjuntos. Sean A y B


dos conjuntos, la diferencia A-B indica los elementos que se encuentra en A
pero no en B. Los conjuntos de números se definen estáticamente dentro del
programa.

Por ejemplo:
Sean A={5,6,7,3,12,67} y B={6,7,9,12,45,34,56}
A-B={5,3,67}

Análisis del problema:


Entrada

Salida

Método

Requisito

Restricción

Diagrama:

Código fuente:
#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own
getch, system("pause") or input loop */

int main(int argc, char *argv[]) {


int
cadena1[]={5,6,7,3,64,55,32,4,15,8},cadena2[]={5,3,12,64,79,6,8
,34,54,60};
int i,x;

for(i=0;i<10;i++)
{
for(x=0;x<10;x++)
{

if(cadena1[i]==cadena2[x])
{
cadena1[i]=0;

}
}

printf("\nla resta es :");

for(i=0;i<10;i++)
{
if(cadena1[i]!=0)
{
printf("%d ",cadena1[i]);
}
}

return 0;
}

CONCLUSIONES
Instituto Politécnico Nacional
Escuela Superior de Ingeniería Mecánica y Eléctrica Unidad
Zacatenco

Ingeniería en Comunicaciones y Electrónica

Laboratorio Fundamentos de programación

Práctica No. 7
“FUNCIONES”

Grupo: 1CM8

Integrantes:
Yaosí Zoé Magalí Soto Arellano
Cornejo Jaramillo Miguel Angel
Quintanar Pérez José Carlos

Maestro:
Pablo Posadas Durán

04 de octubre del 2019

Objetivo:
-El alumno conocerá la sintaxis para la definición de funciones en C.
-El alumno entenderá la importancia de las funciones en el diseño e
implementación en la resolución de problemas de programación.

Introducción:
Las funciones ayudan a dividir el problema en subproblemas, lo cual permite
abstraer la solución del problema total. Las funciones son un conjunto de
instrucciones que realizan una tarea específica, estás se incluyen en un
programa en C. En general, aceptan valores de entrada, llamados parámetros
y proporcionan un valor de salida o valor de retorno, aunque los parámetros y
el valor de retorno pueden no existir. Las funciones tienen la forma general:

tipo_de_retorno nombre_funcion(lista_parametros)
{
Instrucciones
return tipo_de_retorno o expresión
}

tipo_de_retorno: Especifica el tipo de dato que retornará la función: char, int,


double, void, etc.

nombre_funcion: Especifica el nombre con el cual se invocará a la función


dentro de otras funciones.

lista_parametros: Especifica la lista de parámetros o variables de entrada que


aceptará la
función, esta lista debe estar separada por comas y especificar el tipo de dato
de cada
parámetro.

Instrucciones: Especifican la tarea para la cual fue diseñada la función.

tipo_de_retorno o expresión: Especifica en valor de retorno, este dato debe


coincidir con el tipo de dato definido en la declaración de la función.

El código dentro de una función en C es visible para cualquier otra función, es


decir, se puede invocar cualquier función que se encuentre declarada en el
programa. Las funciones pueden llamar o invocar a otras funciones, aunque
los saltos a una función no se pueden hacer hacia la mitad de otra función.
Las funciones no pueden definirse dentro de otras funciones, solamente
pueden definirse dentro del módulo de código fuente (programa o librería).

Desarrollo:
Para cada ejercicio realizar:
Tablas de Entradas y Salidas
Algoritmo (Diagrama de Flujo o Pseudocódigo)
Programa en C

1. Desarrollar una función que imprima una pirámide del tamaño indicado por
el usuario. La función aceptará como parámetro el alto de la pirámide. Escribir
el programa que demuestre el uso de la función: piramide(5). Ejemplo de
ejecución.

Teclee el alto de la pirámide: 5


*
***
*****
*******
*********
Nota: Considerar los casos cuando la pirámide tiene un número par de niveles,
proponer una solución.

Análisis del problema:

Entrada

Salida

Método

Requisito

Restricción

Diagrama:

Código fuente:
#include <stdio.h>
#include <stdlib.h>

void piramide(int x);

int main(int argc, char *argv[]) {

int altura;
printf("\n dame un valor entero de la altura de la
piramide :");
scanf("%d",&altura);
piramide(altura);

return 0;
}

void piramide(int x){


int i,z,w,q;

i=z;

for(i=1;i<x+1;i++)
{
for(w=1;w<z;w++)
{

printf(" ");

}
for(q=0;q<i+i-1;q++)
{

printf("x");

printf("\n");
z=z-1;
}

2. Desarrollar una función que imprima un marco de ventana del tamaño


indicado por el usuario.
La función aceptará como parámetro el alto y ancho del marco. Escribir el
programa que demuestre el uso de la función: marco(5,10). Ejemplo de
ejecución.

Teclee el alto del marco: 5


Teclee el ancho del marco: 10
**********
* *
* *
* *
**********
Análisis del problema:

Entrada

Salida
Método

Requisito

Restricción

Diagrama:

Código fuente:
#include <stdio.h>
#include <stdlib.h>

void cuadro(int x,int y);


int main(int argc, char *argv[]) {

int altura,ancho;
printf("\n dame un valor entero de la altura del cuadro:");
scanf("%d",&altura);
printf("\n dame un valor entero de la ancho del cuadro:");
scanf("%d",&ancho);

if(altura>1 && ancho>1)


{
cuadro(ancho,altura);

else
{

printf("\n error\n introdusca un numero mayor a 1 en la


altura y ancho ");
}

return 0;
}

void cuadro(int x,int y){


int i,w,q;

for(i=1;i<y+1;i++)
{

if(i==1 || i==y)
{
for(q=0;q<x;q++)
{

printf("x");
}

else if(i!=1 && i!=y)


{

printf("x");

for(w=1;w<=x-2;w++)
{

printf(" ");

printf("x");
}

printf("\n");

3. Desarrollar una función que convierta de litros a galones y una función que
imprima la tabla de conversión. El parámetro de entrada para la función de
conversión será el número de litros que se desean convertir a galones:
litros_galones(5) = 1.32 galones . Dicha función devolverá la conversión
realizada.

La función que imprime la tabla de conversión recibirá los parámetros de límite


inicial y límite final, los cuales son capturados por el usuario. Desarrollar el
programa que de muestre el uso de la función para crear la tabla siguiente de
conversiones. Utilice la relación: 1 galón contiene 3.785 litros

Teclee en límite inicial: 3


Teclee el límite Final: 6

Litros Galones
3 0.79
4 1.06
5 1.32
6 1.59

Análisis del problema:

Entrada

Salida

Método

Requisito

Restricción

Diagrama:

Código fuente:
#include <stdio.h>
#include <stdlib.h>

float litros_galones(int litros);


void tabla(int litros,float galones);
int main(int argc, char *argv[]) {

int lfi,lin,i;
float galones;
printf("\n introduce el limite inicial :");
scanf("%d",&lin);
printf("\n introduce el limite final:");
scanf("%d",&lfi);

if(lin>0 && lin<=lfi)


{

for(i=0;i<lfi-lin+1;i++)
{
galones=litros_galones(lin+i);

tabla(lin+i,galones);

else
{

printf("\n error \n error \n error");


}

return 0;
}

float litros_galones(int litros)

{
float x;

x=litros*3.785;

return x;

}
void tabla(int litros,float galones)

printf("\n litros= %d galones= %f",litros,galones );

CONCLUSIONES

También podría gustarte