Está en la página 1de 7

Guía de Trabajos Prácticos 3

TP Nº 3: Estructura y componentes de un programa


Objetivos:
• Reconocer y aplicar adecuadamente los operadores aritméticos, relacionales y lógicos, en
expresiones cuya evaluación brinda un resultado.
• Entender la lógica booleana como herramienta fundamental para condicionar cursos de acción
según sea verdadera o falsa una condición y seleccionar o filtrar información que cumpla con
determinadas condiciones.
• Reconocer los distintos elementos que componen un programa: datos, instrucciones,
asignaciones y expresiones.
Autoevaluación: Para afianzar los conceptos relacionados con este tema, debe resolver el
cuestionario del Tema 3 disponible en la sección Actividades de Evaluación\Cuestionarios
de Autoevaluación\Teoría del aula virtual de la asignatura.

1. Expresiones
Una expresión es una combinación de constantes,
variables, operadores (aritméticos, lógicos y relacionales),
paréntesis y nombres de funciones, que permite procesar
datos y obtener un resultado.
a) Complete la información requerida indicando cuáles son los operadores en cada categoría de
operadores (considere los operadores utilizados por el lenguaje C):
Operadores aritméticos:
Operadores lógicos:
Operadores relacionales:
Expresiones aritméticas

Operadores aritméticos Operación


+ Suma
- Resta
* Multiplicación
/ División
**, ^, ↑ Exponenciación
div División de enteros
mod, % Resto de la división de enteros

b) Inserte paréntesis para indicar el orden en que se realizan las operaciones aplicando las reglas
de prioridad de los operadores aritméticos:
i. a/b*c%e–f*g
ii. a–b*c/d+e*f
c) Calcule el resultado de cada expresión aritmética (teniendo en cuenta las reglas de prioridad):

Aritméticas Resultado
27 % 4 +15 / 4
37 / 4 + 4 * ( -7 )
9 + 12 / 3 * 25
27 % 4 + ( float ) 15 / 4
( int ) 6.50 * 2

Algoritmos y Estructuras de Datos I - 2022 1


Guía de Trabajos Prácticos 3

Expresiones lógicas
Operadores lógicos: && (AND), || (OR), ! (NOT)

Tablas de verdad:
A !A A B A && B A B A || B
V F V V verdadero V V verdadero
F V V F falso V F verdadero
F V falso F V verdadero
F F falso F F falso

d) Resuelva las siguientes expresiones booleanas:


Booleanas VoF
( 25<=7 ) && ! ( 7>=2 )
( 24 < 5 ) && ( 10 >=10 ) || ( 10 == 5 )
( ! ( 6 / 3 > 3 ) ) || 2 + 3 <= 7 / 2 )
e) Evalúe las siguientes expresiones booleanas e indique si el resultado es Falso o Verdadero:
Booleanas VoF
x >= (y + z) para los valores: x = 3, y = 4, z = 1
(a + b - 1) != (x * y) para los valores: a = 31, b = -1, x = 3, y = 2
!(x < 5) && !(y >= 7) para los valores: x = 3, y = 6

2. Definir expresiones de consulta


Escribir la expresión necesaria para obtener información que cumpla con las condiciones requeridas
en cada caso, utilizando operadores relacionales y lógicos.
a) La red social Twitter cuenta con los siguientes datos de sus usuarios de Argentina: sexo (F/M),
edad, provincia de residencia, cantidad de seguidores. Para definir estadísticas del país, se
desea conocer:
i. La cantidad de personas de entre 17 y 30 años que tengan más de 1000 seguidores, que
sean de la provincia de Buenos Aires o de la provincia de Córdoba.
ii. El número de mujeres mayores de 40 años que residen en la provincia de Corrientes o
Chaco.
iii. El número de varones que tienen menos de 100 seguidores y no residen en Buenos Aires.
b) La Empresa MOVISTAR lanza a través de Facebook, un plan de abono para jóvenes. Para ello
cuenta con los siguientes datos: Nombre, trabaja (Verdadero/Falso), edad, estudia en la
universidad (Verdadero/Falso), sexo (V/M). Enviará la invitación a:
i. Jóvenes de entre 17-25 años que trabajan o estudian en la universidad, o varones
mayores de 25 que trabajan y no estudian en la universidad.
ii. Jóvenes mayores a 25 años que no estudian en la universidad
c) La secretaria de Desarrollo Humano de la Provincia de Corrientes realizó un relevamiento de
hogares en la capital correntina recabando los siguientes datos: cantidad de integrantes de la
familia, vivienda familiar propia (SI/NO), plan social (SI/NO), Trabaja (SI/NO), monto ingreso
mensual.
Se desea conocer:
i. La cantidad de hogares que tienen más de 7 integrantes, no tienen vivienda familiar y
viven de un plan social, o el monto de ingreso mensual es menor a $1000.

Algoritmos y Estructuras de Datos I - 2022 2


Guía de Trabajos Prácticos 3

ii. La cantidad de hogares que tiene solo 2 integrantes y tienen vivienda familiar propia y,
tienen un plan social o no trabajan.
iii. La cantidad de familias que tienen un monto de ingreso mensual mayor a $10000, trabajan
y poseen vivienda familiar propia.
d) La app tik tok dispone de los siguientes datos de los usuarios registrados en relación a su
interacción con la aplicación durante la última semana: nombre de usuario, cantidad de cuentas
seguidas, cantidad de seguidores, cantidad de “Me gusta” en su última publicación, código de
hashtag utilizado en su última publicación ( 1- #LuisMiguelLaSerie 2- #EcoTips 3-
#MascotasDeTikTok ). Escribir la expresión de consulta que permita obtener:
i. los usuarios con más cantidad de seguidores que cuentas seguidas que recibieron más de
1500 “Me gusta” en su última publicación cuyo hashtag esté relacionado con eco tips ó
mascotas.
ii. los usuarios con menos cantidad de seguidores que cuentas seguidas que recibieron más
de 1200 “Me gusta” en su última publicación cuyo hashtag esté relacionado con Luis
Miguel.

3. Tipos de datos - Rango de valores en C


Tipos de datos para valores Enteros
Rango
Tipo de dato Tamaño en bytes
desde hasta
short -128 127 1 byte
unsigned short 0 255 1 byte
int -32768 32767 2 bytes
unsigned int 0 65535 2 bytes
long -2147483648 2147483647 4 bytes
unsigned long 0 4294967295 4 bytes

Tipos de datos para valores Reales

Tipo de dato Rango Tamaño en bytes


desde hasta
float 3.4E-38 3.4E38 4 bytes
double 1.7E-308 1.7E308 8 bytes

El operador sizeof()
Una característica del lenguaje C es que el tamaño de los datos puede variar de una plataforma a
otra. Para saber cuántos bytes tiene un dato se puede usar el operador sizeof(). Su sintaxis es:
sizeof (nombre-de-tipo)
Si bien es similar a la forma de una función, se trata de un operador. Representa una forma de
obtener información sobre el tamaño de los tipos básicos.
Se puede aplicar a una variable (expresión-unitaria), o a un tipo de datos (nombre-de-tipo), y
devuelve su tamaño en bytes. Se puede utilizar también con tipos de datos estructurados.

Algoritmos y Estructuras de Datos I - 2022 3


Guía de Trabajos Prácticos 3

Especificador (Specifier)
Indica el formato de entrada/salida. Los más usados son:
Specifier Salida
%c Carácter
%s String de caracteres
%d Entero con signo
%i Entero con signo
%ld Entero largo
%f Coma flotante decimal de precisión simple
%lf Coma flotante decimal de doble precisión
Tipos de datos - Visualización con la función printf()
Printformatted: Visualiza en pantalla los datos de un programa, respetando el formato indicado.
Sintaxis general:
printf (cadena_de_control, dato1, dato2, ….)
cadena_de_control: contiene los tipos de datos y forma de mostrarlos
dato1, dato2,..: Variables, constantes, datos de salida

La cadena de control contiene códigos de formato que se asocian uno a uno con los datos. Cada
código comienza con el carácter de escape "%", a continuación, puede especificarse la alineación,
signo, relleno [flag], ancho [width], precisión [precisión], longitud [length] y el carácter del formato,
el “especificador”. Por ejemplo: %.2f tomará el mínimo necesario de caracteres para representar
la parte entera y 2 caracteres soportaran la parte decimal.

a) Escribir en C un programa que inicialice y muestre una variable de tipo int y otra de tipo char

b) Escribir en C un programa que inicialice una variable de tipo float y otra de tipo double.
Asignarle el valor 123000.567. Formatear la salida para que el valor de la variable se visualice:
o En su formato original
o Utilizando 2 caracteres para la parte decimal
o Solo la parte entera

Algoritmos y Estructuras de Datos I - 2022 4


Guía de Trabajos Prácticos 3

Al ejecutar el código, se espera obtener los siguientes resultados:

Nota: en el caso de float, se puede ver que la representación del número no tiene el mismo valor decimal que
el valor ingresado. Esto es porque la cantidad de bits (32 bits para precisión simple) no permite la
representación exacta, por lo que almacena un valor aproximado. Si se requiere mayor precisión, se debe
usar el tipo double que utiliza 64 bits (doble precisión).

c) Escribir un programa que inicialice las variables con los siguientes valores (las variables
numéricas tienen el valor máximo positivo del rango de representación):
• float unFloat = 3.4E+38;
• double unDouble = 1.7E+308;
• int unEntero = 2147483647;
• short unShort = 32767;
• char unCaracter = 'Z';
• long unLong = 2147483647;
Utilizando el operador sizeof() y la función printf(), imprimir por cada variable su tamaño, su valor,
e indicar, con una leyenda, su tipo de dato.

Al ejecutar el código, se espera obtener los siguientes resultados:

d) Modifique los valores a cantidades que excedan el rango (por ejemplo, asigne 40000 a la
variable unShort). ¿Qué sucede?

Algoritmos y Estructuras de Datos I - 2022 5


Guía de Trabajos Prácticos 3

Tipos de datos - Ingreso de datos con la función scanf()


Scan-format: Ingresa datos a un programa a través de un teclado. Analiza la entrada de datos con
un formato específico y carga el resultado en la variable que recibe como argumento.
Sintaxis general:
scanf (cadena_de_control, var1, var2, ….)
cadena_de_control: contiene los tipos de datos y su formato
var1, var2,..: Variables del tipo de los códigos de control (Los argumentos var1, var2 se
pasan por referencia porque van a ser modificados por la función para devolver los datos,
por ello necesita el operador de dirección &)
Ejemplo de uso:

Si se ingresan los valores: 134 y 1.4E-4, scanf devuelve nroEntero=134 y nroReal= 1.4E-4 (en doble
precisión).
e) Escribir un programa que:
- Declare 3 variables char, int y double.
- Solicitar al usuario el ingreso del valor de las mismas en tiempo de ejecución usando
scanf().
- Imprimir por pantalla los valores de las 3 variables junto a alguna leyenda descriptiva del
contenido.
Ejemplo de resultado:

Ejemplo código para solicitar al usuario un valor de tipo float e imprimirlo por pantalla:

Nota: El operador & indica la dirección de memoria de la variable donde se almacenará el dato.

Algoritmos y Estructuras de Datos I - 2022 6


Guía de Trabajos Prácticos 3

Ejercicios de Repaso
1. Si var1 y var2 son variables enteras que tienen asignados los valores 3 y 6 respectivamente.
¿Cuál será el resultado y el tipo de las siguientes expresiones?

a. (2 + 3 * var1) != (6 + var2 –1)


b. 1 + (2 / 2) / var2 <= 4 * var1
c. 2 – 7 / (2 * var1 – var1) = 0
2. Para un campeonato regional de basquetbol los organizadores necesitan información respecto
a los inscriptos. La ficha de inscripción permite registrar los siguientes datos: sexo (M/F), edad,
categoría (N – niños, C – cadetes), provincia de origen (1-Chaco, 2- Formosa, 3-Corrientes, 4 -
Misiones). Escribir la expresión de consulta que permita obtener del conjunto de datos, lo
siguiente:
a. Las mujeres cadetes de Corrientes o del Chaco
b. Los varones entre 10 y 12 años de Formosa
3. Una plataforma online que vende contenidos multimedia dispone de los siguientes datos de
cada contenido que ofrece: Tipo de contenido (1-Serie Original, 2-Película), Género (1-Acción,
2-Ciencia ficción, 3-Comedias, 4-Drama), Título, Precio de descarga, Cantidad de descargas.
Escribir la expresión de consulta que permita obtener:
a. las series de acción ó ciencia ficción que cuesten entre $350 y $750 con más de 5000
descargas.
b. las películas de drama ó comedia que cuesten entre $150 y $500 con menos de 4000
descargas.

Algoritmos y Estructuras de Datos I - 2022 7

También podría gustarte