Está en la página 1de 5

1

Pre-informe n° 2
Programación estructurada en LabVIEW TM
Darwin Salazar Guerrero
Grupo n° 2
darsalazar@utp.edu.co
Laboratorio de Medidas Eléctricas – Programa de Ingeniería Eléctrica
Universidad Tecnológica de Pereira – febrero 19 de 2018

Resumen – En este documento se encuentra las definiciones y 3. ¿Cuál es el rango de valores admitidos máximos y
conceptos acerca de los diferentes tipos de datos, métodos de mínimos para cada uno de los tipos de datos mencionados?
conversión de los mismos y conocimientos acerca de la
programación estructurada. TABLA II
TAMAÑO DE LOS TIPOS DE DATOS DE MATLAB
Palabras clave – Programación, Estructurada, Datos, Type Tipo de dato Tamaño
Casting.
Entero 8, 16, 32, 64 bits
Flotante de simple precisión 32 bits
I. INTRODUCCIÓN Flotante de doble precisión 64 bits
La realización de un programa sin seguir una técnica de Lógico 8 bits
programación resulta tediosa ya que aparece una gran cantidad
de instrucciones desordenadas siendo difícil de entender, de Caracter 16 bits
encontrar los errores y a su vez también la posibilidad de
mejoras. Cuando se habla de una programación estructurada, se 4. ¿En qué consiste el formato de codificación de caracteres
refiere a la división del programa en partes más manejables [1]. UTF-8?
UTF-8 (Unicode Tranformation Format-8) consiste en
II. CONTENIDO representar un carácter por medio de 1 byte (8 bits) [2].
A. Elabore sobre los siguientes conceptos básicos. Sea
concreto, pero completo en sus respuestas Ventajas
-UTF-8 permite codificar cualquier carácter Unicode
1. ¿Cuáles son los tipos de datos escalares más comunes en -Fácil identificación. Es posible identificar claramente una
C/C++? muestra de datos como UTF-8 mediante un sencillo algoritmo.
Los tipos de datos escalares para C y C++ se muestran en la La probabilidad de una identificación correcta aumenta con el
siguiente tabla. tamaño de la muestra.
TABLA1 -UTF-8 ahorrará espacio de almacenamiento para textos en
TIPOS DE DATOS ESCALARES PARA C/C++
caracteres latinos, donde los caracteres incluidos en US-ASCII
Lenguaje de son comunes, cuando se compara con otros formatos como
Tipos Escalares
programación UTF-16.
Boolean, int, single, double, -Una secuencia de bytes para un carácter jamás será parte de
C
char, string, etc. una secuencia más larga de otro carácter por contener
Int, bool, char, short, long, información de sincronización.
C++
float, double, etc. -Al ser compatible con US-ASCII se puede utilizar en Shell
scripts y en llamadas a procedimientos que esperan strings
2. ¿Cuáles son los tipos de datos escalares más comunes en terminados en bytes nulos.
Matlab? -No es necesario el uso de Byte order mask ya que UTF-8
Tipo numéricos trabaja con bytes y no palabras [2].
-Entero (int8, uint8, int16, uint16, int32, uint32, int64, uint64)
-Flotante de simple precisión (single) Desventajas
-Flotante de doble precisión (double) -UTF-8 utiliza símbolos de longitud variable; eso significa que
Lógico (logical) diferentes caracteres pueden codificarse con distinto número de
- Valor 0 ó 1. Resultado de operaciones relacionales o lógicas bytes. Es necesario recorrer la cadena desde el inicio para
Caracter (char) encontrar el carácter que ocupa una determinada posición.
-Utilizado para almacenar un caracter -Los caracteres ideográficos usan 3 bytes en UTF-8, pero sólo
2 en UTF-16. Así, los textos chinos, japoneses o coreanos
ocupan más espacio cuando se representan en UTF-8.
2

-UTF-8 ofrece peor rendimiento que UTF-16 y UTF-32 en el compilador. Para realizar la segunda hay que utilizar alguna
cuanto a carga computacional [2]. instrucción. Antes se han visto varias para transformar de un
tipo concreto a otro tipo también concreto. Type Cast es la
5. ¿Qué es el Type Casting? ¿Cómo se puede hacer Type función más genérica para transformar datos de un tipo a otro,
Casting en lenguaje C/C++? y puede verse en la figura 1. El terminal x es el dato a convertir
y Type el tipo al que será convertido. Por defecto, si no se
La conversión de tipos (Type casting en inglés) se refiere a la
conecta nada, lo considera string. Esta función no realiza
transformación de un tipo de dato en otro. Esto se hace para
tomar las ventajas que pueda ofrecer el tipo a que se va a ningún tipo de comprobación, así que al usarla hay que tener en
la cuenta que las entradas Type y x sean compatibles, sino el
convertir. Por ejemplo, los valores de un conjunto más
resultado no será el esperado [6].
compacto y más tarde convertidos a un formato diferente que
permita las operaciones que anteriormente no eran posibles,
tales como la división con decimales [3].
Para el caso de C, que tiene tipos estáticos en tiempo de
compilación, después de declarar una variable, no se puede
volver a declarar ni usar para almacenar valores de otro tipo a
menos que ese tipo de sea convertible al tipo de la variable [4].
Fig.1. Función Type
Conversiones de tipo implícitas
Cuando una expresión contiene operandos de diferentes tipos B. Elabore sobre los siguientes conceptos de programación
integrados y no hay conversiones explícitas presentes, el
compilador usa las conversiones estándar integradas para 1. ¿Qué es la programación estructurada?
convertir uno de los operandos de forma que coincidan con los
tipos. El compilador intenta las conversiones en una secuencia La programación estructurada es un estilo con el cual se busca
bien definida hasta que una sea correcta. Si la conversión que el programador elabore programas sencillos y fáciles de
seleccionada es una promoción, el compilador no emite una entender. Para ello, la programación estructurada hace uso de
advertencia. Si la conversión es una restricción, el compilador tres estructuras básicas de control: Estructura secuencial,
emite una advertencia sobre la posible pérdida de datos. El estructura selectiva y estructura repetitiva (ó iterativa).
hecho de que se produzca en efecto la pérdida de datos depende La programación estructurada se basa en un teorema
de los valores reales implicados, pero se recomienda tratar esta fundamental, el cual afirma que cualquier programa, no importa
advertencia como un error. Si está implicado un tipo definido el tipo de trabajo que ejecute, puede ser elaborado utilizando
por el usuario, el compilador intenta utilizar las conversiones únicamente las tres estructuras básicas (secuencia, selección,
especificadas en la definición de clase. Si no encuentra una iteración) [7].
conversión aceptable, el compilador emite un error y no se 2. ¿Cómo sería un programa no estructurado?
compila el programa [5]. Un programa no estructurado es un programa procedimental:
las instrucciones se ejecutan en el mismo orden en que han sido
Conversiones de ampliación (promoción) escritas. Sin embargo, este tipo de programación emplea la
Es una conversión de ampliación, un valor de una variable instrucción “goto”. Una instrucción “goto” permite pasar el
menor se asigna a una variable mayor sin pérdida de datos. control a cualquier otra parte del programa. Cuando se ejecuta
Dado que las conversiones de ampliación siempre son seguras, una instrucción “goto” la secuencia de ejecución del programa
el compilador las realiza de forma silenciosa y no emite continúa a partir de la instrucción indicada por “goto”. De esta
advertencias. Las conversiones de la tabla siguiente son de forma, para comprender cómo funciona un programa es
ampliación. necesario simular su ejecución. Esto quiere decir que en la
TABLA III mayoría de los casos es muy difícil comprender la lógica de un
CONVERSIONES DE AMPLIACIÓN
programa de este tipo [8].
De Para 3. ¿Qué es una secuencia, o bloque de código?
Cualquier tipo entero con o El bloque de código es una sección de código con una o más
sin signo, excepto long long Double declaraciones y sentencias. La función de los bloques de
o __int64 programación es permitir que grupos de sentencias sean
Cualquier otro tipo tratados como si fueran una sola sentencia, y restringir el ámbito
Bool o char
integrado léxico de las variables, los procedimientos y funciones
Short o wchar_t Int, long, long long declaradas en un bloque para que no entre en conflicto con
Int, long Long long variables con el mismo nombre utilizadas para diferentes
Float double propósitos en otras partes del programa [9].

4. ¿Qué es una estructura iterativa? Tipos, Sintaxis,


6. ¿Existe el Type Casting en LabVIEW?
Ejemplos.
Hay dos tipos de conversión: la coerción (implícita) y la
También llamada la estructura HACER-MIENTRAS-QUE,
implícita cast (explícita). La primera la hace automáticamente
corresponde a la ejecución repetida de una instrucción mientras
3

que se cumple una determinada condición [7]. Los tipos de


estructura iterativa son: While (expresión)
{
Estructura de Repetición for: Esta estructura de repetición es Sentencia (s);
más utilizada cuando se sabe el número de repeticiones que se }
desea ejecutar [10].
La notación de esta estructura es sencilla y se detalla a La estructura while trabaja de la siguiente manera:
continuación: -Evalúa la expresión o condición
-Si el resultado de esta evaluación es verdadero la sentencia o
for (condición de inicio; expresión; acción después de cada sentencias se ejecutan, es decir, se ejecuta el cuerpo de la
iteración) estructura.
{ Luego se vuelve a evaluar la expresión
Sentencia (s); -Si el resultado de esta evaluación es falso no se ejecuta la
} sentencia o sentencias y sale del ciclo while [10].

Ejemplo: Cantar 10 veces la canción del elefante Ejemplo: Apagar 10 velas cuando cumpla 10 años, es decir,
soplar 10 veces.
#include <iostream>
using namespace std; Inicio
void main () edad <- 0
{ mientras edad! = 10 años
int i; soplar vela
for( i = 1 ; i<=10 ; i++) edad = edad + 1
{ Fin Mientras
cout<<i<<" elefante(s) se balanceaba(n) sobre la Fin
tela de una araña\n”;
cout<<”como veía(n) que resistía(n) fueron a llamar
a otro elefante\n "; 5. ¿Qué es una estructura de decisión? Tipos, Sintaxis,
}
} Ejemplos.
También conocida como la estructura SI-VERDADERO-
FALSO, plantea la selección entre dos alternativas con base en
Estructura de repetición do while: Estructura de control muy el resultado de la evaluación de una condición; equivale a la
parecida a la estructura while, lo que la hace diferente es que instrucción IF de todos los lenguajes de programación [7]. Los
siempre ejecuta por lo menos una vez el cuerpo de la tipos de estructura selectiva son:
estructura, por eso el do, y luego valida una expresión y en
función a este vuelve a iterar o no [10]. Simples: Las estructuras selectivas o condicionales están
compuestas únicamente de una sola condición; si es verdadera,
ejecutará la acción o acciones, si la condición es falsa no hará
nada [11].
Ejemplo: Se desea ingresar por lo menos un nombre de un If (condición) entre paréntesis está la condición que se debe
estudiante por teclado hasta que el usuario presione “0” para evaluar
salir o cualquier otro número para continuar. acción (si la condición entre paréntesis es verdadera se
ejecutará la acción o acciones)
#include <iostream>
using namespace std; end

void main() Ejemplo: Ingresar un valor al programa y que sea mayor a 17


{
char nom[20]; //Cadena que puede contener 20
para que se ejecute el programa
caracteres
int rpta=0; If (edad > 17)
do puts “Es mayor de edad”
{ end
cout<<"Ingrese el nombre de un estudiante \n";
cin>>nom; Dobles: Las estructuras selectivas dobles están compuestas
cout<<"Desea continuar ingresando nombres: para
salir '0'"; únicamente de una sola condición, si es verdadera ejecutará la
cin>>rpta; acción o acciones y si la condición es falsa, ejecutará las
} acciones para la condición falsa. Esta estructura selectiva solo
while(rpta != 0); } se debe utilizar únicamente cuando existen dos condiciones, si
hubieran más de dos condiciones se puede utilizar varias
Estructura de repetición while: Dicha estructura repite una serie selectivas simples o una selectiva múltiple [11].
de acciones mientras se cumpla una condición [10].
4

If (condición) El lenguaje de programación estructurado fue un gran avance


acción (si la condición entre paréntesis es verdadera se en la creación de código ya que éste permite crear listas de
ejecutará la acción, porque, puede estar conformador por varias instrucciones más ordenadas, fáciles de entender, se pueden
líneas) encontrar los errores de una manera más rápida y de estar
else manera mejorarlas.
acción (si la condición entre paréntesis es falsa se ejecutará la
acción o acciones, porque, puede estar conformado por varias IV. REFERENCIAS
líneas)
end [1] «mheducation,» [En línea]. Available:
https://www.mheducation.es/bcv/guide/capitulo/8448148703.
Ejemplo: Siguiendo con el ejemplo anterior, asignar el mismo pdf. [Último acceso: 15 febrero 2018].
valor a la variable edad [2] «Tutorial Monsters,» 14 Febrero 2011. [En línea].
Available: http://www.tutorialmonsters.com/que-es-unicode-
If (edad > 17)
Puts ”Es mayor de edad” utf-8/. [Último acceso: 14 Febrero 2018].
Else [3] «Wikipedia,» 6 Agosto 2015. [En línea]. Available:
Puts “Es menor de edad” https://es.wikipedia.org/wiki/Conversi%C3%B3n_de_tipos.
End [Último acceso: 14 Febrero 2018].
[4] «Microsoft,» 20 Julio 2015. [En línea]. Available:
Múltiples: Las estructuras selectivas múltiples o anidadas están https://docs.microsoft.com/es-es/dotnet/csharp/programming-
compuestas de múltiples selectivas simples que están unidas guide/types/casting-and-type-conversions. [Último acceso: 14
por el comando elseif [11]. Febrero 2018].
[5] «Microsoft,» [En línea]. Available:
If (condición) https://msdn.microsoft.com/es-es/library/hh279667.aspx.
acción (si la condición entre paréntesis es verdadera se [Último acceso: 14 febrero 2018].
ejecutará la acción o acciones) [6] J. P. S. José Rafael Lajara Vizcaíno, LabVIEW
elseif Entorno gráfico de programación, Barcelona: Marcombo,
acción (si la condición entre paréntesis es verdadera se 2011.
ejecutará la acción o acciones) [7] «iqcelaya,» [En línea]. Available:
elseif http://www.iqcelaya.itc.mx/~vicente/Programacion/ProgEstru
acción (si la condición entre paréntesis es verdadera se ct.pdf. [Último acceso: 15 febrero 2018].
ejecutará la acción o acciones) [8] A. Romero, «prezi,» 16 marzo 2013. [En línea].
end Available: https://prezi.com/b49vgrukb6qd/lp-estructurados-
y-no-estructurados/. [Último acceso: 15 febrero 2018].
Ejemplo: Siguiendo con el ejemplo anterior, asignar el mismo [9] «Wikipedia,» 12 noviembre 2017. [En línea].
valor a la variable edad Available:
https://es.wikipedia.org/wiki/Bloque_de_c%C3%B3digo.
If (edad > 17)
Put “Es mayor de edad” [Último acceso: 15 febrero 2018].
Elseif (edad < 18) [10] «Olimpiada de informática,» [En línea]. Available:
Puts “Es menor de edad” http://www.omijal.org/pagina_c/its.html. [Último acceso: 15
End febrero 2018].
[11] M. Sarmiento, «MarcoSarmiento,» 02 Septiembre
C. Escriba un script de Matlab mediante el cual pueda obtener 2014. [En línea]. Available:
el resultado correcto para cada una de las siguientes http://www.marcossarmiento.com/2014/09/02/estructuras-
expresiones matemáticas: selectivas-simples-dobles-y-multiples/. [Último acceso: 17
febrero 2018].
𝑥−7 − 10 < 𝑥 < −2
1. 𝑓(𝑥) = { } [12] «Wikipedia,» 16 mayo 2017. [En línea]. Available:
√24 − 𝑥 2 − 2 ≤ 𝑥 < 10 https://es.wikipedia.org/wiki/Escalar_(informática). [Último
17
2. 𝑓(𝑥) = acceso: 13 febrero 2018].
16−𝑥 2
[13] J. L. Esteban, «Matemática aplicada,» 11 Noviembre
𝑖
3. 𝑠 = ∑50
𝑖=−20 2 (4 + 𝑖) 2008. [En línea]. Available:
http://matematicaaplicada.jezasoft.co/jeza/material_de_apoyo
El código que corresponde a la programación de cada uno de /informatica/electronica/tema_02_tipos_de_datos_operadores
los numerales se encuentra en el anexo 1,2 y 3 respectivamente. _y_funciones.pdf. [Último acceso: 14 Febrero 2018].
III. CONCLUSIONES
Es importante conocer los tipos de datos que maneja cada
lenguaje y programa ya que de esta manera se puede facilitar el
entendimiento de programación.
5

ANEXOS

Anexo 1. Código para la función 1.


clear all
clc
x = input('Ingrese el valor de x: ');
if -10<x && x<-2
y = x-7;
disp('el resultado es: ')
disp(y)
elseif -2<=x && x<10
y=sqrt(24-x^2);
disp('el resultado es:')
disp(y)
end

Anexo 2. Código correspondiente a la función 2.


clear all
clc
x = input('Ingrese el valor de x: ')
y= 17/(16-x^2);
disp('Resultado:')
disp(y)

Anexo 3. Código correspondiente a la sumatoria.


clear all
clc
sum=0;
for i=-20:50
s=sum+(i/2)*(4+i);
disp('resultado: ')
disp(s)
end

También podría gustarte