Vous êtes sur la page 1sur 6

Ingeniería Electrónica 1

Informe de Laboratorio
Sistemas Embebidos Lab #: 1

Programación en lenguaje C
Jorge Enrique Contreras – Hernan Camilo Uribe Orozco

ABSTRACT: El presente informe se refiere a la Diagrama de Bloques:


práctica de laboratorio de la clase de Sistemas embebidos para
comprender el lenguaje básico del lenguaje C.

I. INTRODUCCION
La práctica de laboratorio se realiza en base al estudio del
software de programación C con la intención de que los
estudiantes del curso de sistemas embebidos comprendan el uso
de los comandos básicos del lenguaje, para el desarrollo de los
ejercicios planteados en la clase.
Por medio de tales ejercicios cada estudiante en grupos de 2
personas es introducido a los comandos básicos con los que
luego deberá realizar las practicas propuestas por el profesor.
El lenguaje de programación c es de uso generalizado y conduce
a promover y desarrollar software de sistemas orientados a
objetos y aplicaciones.

OBJETIVOS
Objetivo general:
Comprender el uso de los comandos básicos del
lenguaje de programación C.
Objetivos específicos:
• Conocer de forma práctica como se utilizan los
comandos del lenguaje c.
•Resolver los problemas planteados en el laboratorio
propuesto por el profesor.
• Identificar como se puede utilizar el lenguaje C en la
ingeniería electrónica y en el trabajo en equipo.

II. DESARROLLO

A. Primera parte:
La primera parte del informe se baso en una partícula ubicada Explicación:
dentro de un círculo que se podía mover a través de él en el Para le resolución de este problema, se decidió hacer un
plano de coordenadas de a una unidad a la vez por el eje ‘x’ y/o programa el cual solicitaba al usuario el diámetro del circulo
por el eje ‘y’. El programa solicita al usuario el diámetro del comprendido entre 1 y 100, y también se le solicitaba que
círculo, las coordenadas iniciales y los siguientes trece ingresara las coordenadas iniciales en las que la partícula se
movimientos que va a realizar la partícula y durante ese proceso encontraría. Seguido de eso se hace un bucle en el cual se le
cuenta el número de veces que se movió la partícula antes de pide al usuario ingrese las coordenadas que se va a mover, esto
se realizara 13 veces. El programa dentro del bucle irá llevando
que se saliera del círculo.
la coordenada actual mientras la partícula realiza los
movimientos y va a contar el número de movimientos que esta
realiza antes de salirse del círculo, para esto fue necesario
calcular la distancia entre el centro del circulo y la coordenada
actual a la que se encontraba la partícula a través de Pitágoras;
si la distancia actual a la del centro supera el radio, el contador
se detendrá y al finalizar los movimientos, el programa
mostrará al usuario la cantidad de movimientos que la partícula
realizo antes de salir del círculo.
Ingeniería Electrónica 2
Informe de Laboratorio
Sistemas Embebidos Lab #: 1
Código: B. Segunda parte

#include <stdio.h> 1. Este problema consiste en que una rana ubicada en la


#include <math.h> posición ‘X’, quería llegar a una posición ‘Y’ con una
longitud de salto ‘D’ que el usuario determinaba. El
int main() objetivo consistía en realizar un programa que recibiera los
{ datos de la posición inicial, la posición final y la longitud
int de salto de la rana y con ellos, determinara la cantidad
diam,xi,yi,x,y,cont=0,i,rad,ban=0,pot; mínima de saltos que la rana necesitaba para alcanzar su
double pit; objetivo.
printf("Ingrese diametro de la
Diagrama de bloques:
circunferencia entre 1 y 100: ");
scanf("%d",&diam);

rad=diam/2;

printf("Ingrese coordenadas iniciales


(x,y): ");
scanf("%d,%d",&xi,&yi);

for(i=0;i<13;i++)
{
printf("Ingrese valor de
coordenadas (x,y) %d: ",i+1);
scanf("%d,%d",&x,&y);
if((x==1 || x==0 || x==-1) &&
(y==1 || y==0 || y==-1))
{
xi+=x;
yi+=y;
pot=(xi*xi)+(yi*yi);
pit=sqrt(pot);

if(pit>=-rad && pit<=rad && ban==0)


{
cont++;
}
if(pit>rad)
{
ban=1;
}
}

else
{ Explicación:
printf("ERROR, los valores de Para la resolución de este problema se decidió hacer un
las coordenadas deben ser 1,0 o -1\n"); programa que en la función principal solicitara al usuario
i=i-1; el valor de la posición inicial de la rana, su posición final y
} la longitud de salto de la rana, después, se crea una función
} llamada solución que recibe los valores solicitados
anteriormente al usuario y con ellos determina la distancia
printf("El numero de movimientos que debe recorrer la rana y a partir de ello, determina el
dentro del circulo fue: %d\n",cont); número de saltos que debe realizar para llegar a su objetivo.
} Nuevamente en la función principal, se hace el llamado de
la función y se imprime el número de saltos que debe dar
la rana.
Ingeniería Electrónica 3
Informe de Laboratorio
Sistemas Embebidos Lab #: 1

2. Este problema consistía en determinar la cantidad de


números divisibles por un número ‘K’ dentro de un rango
entre los números ‘A’ y ‘B’.
Código:
Diagrama de bloques:
#include <stdio.h>

int solucion(int X, int Y, int D);

int main()
{
int x,y,d,val;
printf("Ingrese el valor de la
posicion actual de la rana: ");
scanf("%d",&x);
printf("Ingrese el valor de la
posicion final a la que desea que llegue
la rana: ");
scanf("%d",&y);
printf("Ingrese el valor de la
longitud de salto de la rana: ");
scanf("%d",&d);
val=solucion(x,y,d);
printf("El numero de saltos que da la
rana es: %d\n",val);
}

int solucion(int X, int Y, int D)


{

int saltos,distancia;
distancia=Y-X;
saltos=distancia/D;
if(distancia%D!=0)
{
saltos+=1;
}

return saltos;
} Explicación:
Se decidió hacer un programa que en su función principal
le solicitara al usuario el numero ‘K’ y los rangos ‘A’ y ‘B’,
después en una función llamada solución, que recibe los
valores anteriores y evalúa cada valor entero comprendido
dentro del rango [A,B] para saber si es divisible entre ‘K’,
al mismo tiempo una variable contador se va
incrementando cada vez que la afirmación anterior sea
verdadera. Nuevamente en la función principal, se hace el
llamado de la función y se muestra en pantalla la cantidad
de número divisibles por ‘K’.
Ingeniería Electrónica 4
Informe de Laboratorio
Sistemas Embebidos Lab #: 1

3. Mostrar en consola un numero de hasta tres cifras como se


muestra en una pantalla de cristal líquido tantas veces
como la consola se mantenga activa y en caso de que el
número este fuera del rango, el programa mostrará un
mensaje de error y quedará a la espera de que se digite un
Código: nuevo número.

#include <stdio.h> Diagrama de Bloques:

int solucion(int A,int B, int K);

int main()
{
int A,B,K,val;

printf("Ingrese el rango minimo: ");


scanf("%d",&A);
printf("Ingrese el rango maximo: ");
scanf("%d",&B);
printf("Ingrese el numero: ");
scanf("%d",&K);

val=solucion(A,B,K);
printf("La cantidad de numeros
enteros divisibles por %d es:
%d\n",K,val);

int solucion(int A,int B, int K)


{
int i,cont=0;
for(i=A;i<=B;i++)
{
if(i%K==0)
{
cont++;
}
} Explicación:
Para la resolución de este problema se decidió hacer
return cont; un programa que en su función principal se le
} solicitaba al usuario el número a imprimir y luego este
se descomponía en sus respectivas unidades, decenas
y centenas; luego se realizaron cinco funciones, que
imprimían un fila de rayas posible de cualquier digito;
después se crearon otras cinco funciones que recibían
el valor de las unidades, decenas o centenas y le
asignaba a cada digito correspondiente la fila de rayas
correspondiente para cada formar dicho número.
Nuevamente en la función principal se hacia el
llamado de las últimas cinco funciones para que
imprimieran fila por fila el numero solicitado por el
usuario.
Ingeniería Electrónica 5
Informe de Laboratorio
Sistemas Embebidos Lab #: 1

Código: rayas2(c);rayas2(d);rayas2(u);
printf("\n");
#include <stdio.h>
rayas2(c);rayas2(d);rayas2(u);
void uno(void); printf("\n");
void dos(void);
void tres(void); rayas3(c);rayas3(d);rayas3(u);
void cuatro(void); printf("\n");
void cinco(void);
void rayas1(int val); rayas4(c);rayas4(d);rayas4(u);
void rayas2(int val); printf("\n");
void rayas3(int val);
void rayas4(int val); rayas4(c);rayas4(d);rayas4(u);
void rayas5(int val); printf("\n");

int main() rayas5(c);rayas5(d);rayas5(u);


{ printf("\n");
int num,u=0,d=0,c=0; }
while(1) }
{ }
printf("\n");
printf("Ingrese numero: "); void uno(void)
scanf("%d",&num); {
printf("\n");
printf(" ---- ");
if(num<0 || num>999) }
{ void dos(void)
printf("Numero fuera de rango intente {
de nuevo\n"); printf("| |");
} }
void tres(void){
if(num>=0 && num<=9) printf(" |");
{ }
c=0; void cuatro(void){
d=0; printf("| ");
u=num; }
} void cinco(void)
{
if(num>=10 && num<=99) printf(" ");
{ }
c=0; void rayas1(int val)
d=num/10; {
u=num%10; if(val==0 || val==2 || val==3 ||
} val==5 || val==6 || val==7 || val==8 ||
val==9 )
if(num>=100 && num<=999) {
{ uno();
c=num/100; }
d=(num/10)%10; else if(val==1)
u=num%10; {
} cinco();
}
if(num>=0 && num<=999) else if(val==4)
{ {
dos();
rayas1(c);rayas1(d);rayas1(u); }
printf("\n");
Ingeniería Electrónica 6
Informe de Laboratorio
Sistemas Embebidos Lab #: 1
printf(" ");
return; void rayas4(int val)
} {
if(val==0 || val==6 || val==8)
void rayas2(int val) {
{ dos();
if(val==0 || val==4 || val==8 || }
val==9) else if(val==1 || val==3 || val==4 ||
{ val==5 || val==7 || val==9)
dos(); {
} tres();
else if(val==1 || val==2 || val==3 || }
val==7) else if(val==2)
{ {
tres(); cuatro();
} }
else if(val==5 || val==6)
{ printf(" ");
cuatro(); return;
} }

printf(" "); void rayas5(int val)


return; {
} if(val==1 || val==4 || val==7)
{
void rayas3(int val) cinco();
{ }
if(val==0 || val==1 || val==7) else if(val==0 || val==2 || val==3 ||
{ val==5 || val==6 || val==8 || val==9)
cinco(); {
} uno();
else if(val==2 || val==3 || val==4 || }
val==5 || val==6 || val==8 || val==9)
{ printf(" ");
uno(); return;
} }

printf(" "); III. CONCLUSIONES


return;
} A. Técnicas:

• La declaración de tipos de variables en un programa


de lenguaje c afectan el tiempo de ejecución y cantidad
de memoria del programa, dentro de este se pueden
realizar conversiones de las mismas tales como pasar
una variable tipo int a tipo float para realizar
operaciones.
• En la consola de salida del lenguaje c los datos a
mostrar se imprimen continuos, al cambiar de línea no
se puede regresar a la anterior, es por eso que cuando
deseamos simular los números como se mostraría en
una LCD se deben imprimir los valores por partes
dividiéndolos en filas.
• El uso de funciones en un programa de lenguaje c
facilita al programador la comprensión y realización
de código y optimiza el uso de memoria y el tiempo de
ejecución del código.

Vous aimerez peut-être aussi