Subido por Rusbert Sánchez

Primer Parcial

Anuncio
Instituto Tecnológico de Las Américas
Facultad:
Software 2023-C-1
Carrera:
Desarrollo de Software
Asignatura:
Programación I
Grupo:
11# (Mi - 8:00am a 12:00pm)
Maestro:
Jean Charly Joseph Saint
Tema:
Análisis del Libro "Fundamentos de programación" de Luis Joyanes Aguilar
Estudiante:
Rusbert Antonelly Sánchez Rosario
Matrícula:
2022-0323
Fecha:
13/02/2023
"Fundamentos de Programación" de Luis Joyanes Aguilar
1. INTRODUCCIÓN A LAS COMPUTADORAS Y LOS LENGUAJES DE
PROGRAMACIÓN.
Análisis Propuesto del Capítulo.
Las computadoras (ordenadores) electrónicas modernas son uno de los productos
más importantes del siglo XXI ya que se han convertido en un dispositivo esencial
en la vida diaria de las personas, como un electrodoméstico más del hogar o de la
oficina y han cambiado el modo de vivir y de hacer negocios. Constituyen una
herramienta esencial en muchas áreas: empresa, industria, gobierno, ciencia,
educación..., en realidad en casi todos los campos de nuestras vidas. Son infinitas
las aplicaciones que se pueden realizar con ellas: consultar el saldo de una cuenta
corriente, retirar dinero de un banco, enviar o recibir mensajes por teléfonos
celulares (móviles) que a su vez están conectados a potentes computadoras,
escribir documentos, navegar por Internet, enviar y recibir correos electrónicos (email), etc.
El papel de los programas de computadoras es fundamental; sin una lista de
instrucciones a seguir, la computadora es virtualmente inútil. Los lenguajes de
programación nos permiten escribir esos programas y por consiguiente
comunicarnos con las computadoras. La principal razón para que las personas
aprendan lenguajes y técnicas de programación es utilizar la computadora como
una herramienta para resolver problemas.
En el capítulo se introducen conceptos importantes tales como la organización de
una computadora, el hardware, el software y sus componentes, y se introducen los
lenguajes de programación más populares C, C++, Java o C#.
Aprendizaje e Importancia de la Lectura.
Una computadora es una máquina para procesar información y obtener resultados
en función de unos datos de entrada y se divide en dos partes principales:
• Hardware: parte física de una computadora.
• Software: parte lógica de una computadora.
Las computadoras se componen de:
• Dispositivos de entrada y salida.
• CPU
• Memoria central.
• Memoria auxiliar o externa.
El software del sistema comprende, entre otros, el sistema operativo Windows,
Linux, en computadoras personales y los lenguajes de programación. Los lenguajes
de programación de alto nivel están diseñados para hacer más fácil la escritura de
programas que los lenguajes de bajo nivel. Existen numerosos lenguajes de
programación cada uno de los cuales tiene sus propias características y
funcionalidades, y normalmente son más fáciles de transportar a máquinas
diferentes que los escritos en lenguajes de bajo nivel.
Los programas escritos en lenguaje de alto nivel deben ser traducido por un
compilador antes de que se puedan ejecutar en una máquina específica. En la
mayoría de los lenguajes de programación se requiere un compilador para cada
máquina en la que se desea ejecutar programas escritos en un lenguaje específico.
Los lenguajes de programación se clasifican en:
• Alto nivel
• Bajo nivel
• Máquina
• Diseño de Web
Los programas traductores de lenguajes son:
• Compiladores.
• Intérpretes.
Conclusión del Capítulo.
Existen lenguajes específicos para cada tarea diferente. Los lenguajes y las Técnicas
de Programación son importantes para la utilización de la computadora como una
herramienta para resolver problemas.
En computación, un Problema consiste en la necesidad de transformar un grupo
de datos iniciales en un grupo diferente de datos finales (resultados). De este
modo, una computadora podrá resolver un problema si alguien desarrolla un
programa que contenga las instrucciones adecuadas que permitan transformar los
datos.
Los lenguajes deben ser confiables, comprensibles, eficientes en términos de
tiempo de ejecución y consumo de espacio, y deben satisfacer las necesidades de
una comunidad, ya sean científicos, hombres de negocios o usuarios no técnicos.
Cada uno estos grupos está acostumbrado a un vocabulario particular y una
manera de ver las cosas; de este modo, existe una gran variedad de lenguajes y
muy probablemente esto continuará siendo así.
2. METODOLOGÍA DE LA PROGRAMACIÓN Y DESARROLLO DE SOFTWARE.
Análisis Propuesto del Capítulo.
Este capítulo le introduce a la metodología que hay que seguir para la resolución
de problemas con computadoras. La resolución de un problema con una
computadora se hace escribiendo un programa, que exige al menos los siguientes
pasos:
1.
2.
3.
4.
Definición o análisis del problema.
Diseño del algoritmo.
Transformación del algoritmo en un programa.
Ejecución y validación del programa.
Este capítulo introduce al lector en el concepto de algoritmo y de programa, así
como las herramientas que permiten “dialogar” al usuario con la máquina: los
lenguajes de programación.
Aprendizaje e Importancia de la Lectura.
Un método general para la resolución de un problema con computadora tiene las
siguientes fases:
1.
2.
3.
4.
5.
6.
Análisis del programa.
Diseño del algoritmo.
Codificación.
Compilación y ejecución.
Verificación.
Documentación y mantenimiento.
El sistema más idóneo para resolver un problema es descomponerlo en módulos
más sencillos y luego, mediante diseños descendentes y refinamiento sucesivo,
llegar a módulos fácilmente codificables. Estos módulos se deben codificar con las
estructuras de control de programación estructurada.
1. Secuenciales: las instrucciones se ejecutan sucesivamente una después de
otra.
2. Repetitivas: una serie de instrucciones se repiten una y otra vez hasta que se
cumple una cierta condición.
3. Selectivas: permite elegir entre dos alternativas (dos conjuntos de
instrucciones) dependiendo de una condición determinada).
Resolución de Ejercicios.
2.2. Escribir un algoritmo para:
a)
b)
c)
d)
Sumar dos números enteros.
Restar dos números enteros.
Multiplicar dos números enteros.
Dividir un número entero por otro.
2.4. Diseñar un algoritmo que lea y visualice una serie de números distintos
de cero. El algoritmo debe terminar con un valor cero que no se debe
visualizar. Visualizar el número de valores leídos.
2.5. Diseñar un algoritmo que visualice y sume la serie de números 3, 6, 9,
12…, 99.
2.6. Escribir un algoritmo que lea cuatro números y a continuación visualice
el mayor de los cuatro.
2.7. Diseñar un algoritmo que lea tres números y descubra si uno de ellos es
la suma de los otros dos.
2.9. Diseñar un algoritmo para determinar los números primos iguales o
menores que N (leído del teclado). (Un número primo sólo puede ser divisible
por él mismo y por la unidad.)
2.10. Escribir un algoritmo que calcule la superficie de un triángulo en función
de la base y la altura (S = 1/2 Base × Altura).
2.11. Calcular y visualizar la longitud de la circunferencia y el área de un
círculo de radio dado.
2.12. Escribir un algoritmo que encuentre el salario semanal de un trabajador,
dada la tarifa horaria y el número de horas trabajadas diariamente.
2.13. Escribir un algoritmo que indique si una palabra leída del teclado es un
palíndromo. Un palíndromo (capicúa) es una palabra que se lee igual en
ambos sentidos como “radar”.
Conclusión del Capítulo.
Hoy en día la comunicación, la tecnología y los sistemas de información avanzan
y evolucionan a una velocidad exponencial generando consigo que la gestión
de proyectos informáticos esté a la altura de la velocidad de los cambios
ocasionados por esta evolución. El mundo del desarrollo del software ha
cambiado drásticamente desde la aparición de internet y la gran cantidad de
herramientas que nos permiten crear ecosistemas de trabajo mucho más
colaborativos en los que el flujo de información es mucho más rápido que con
las estructuras tradicionales. En esta nueva generación, las metodologías
tradicionales de desarrollo de software fueron quedado obsoletas en
determinados sectores, en los que la propia demanda de los usuarios es más
rápida que la capacidad de producción de las empresas ancladas a las viejas
metodologías de gestión de proyectos de sistemas informáticos.
3. ESTRUCTURA GENERAL DE UN PROGRAMA.
Análisis Propuesto del Capítulo.
En los capítulos anteriores se ha visto la forma de diseñar algoritmos para resolver
problemas con computadora. En este capítulo se introduce al proceso de la
programación que se manifiesta esencialmente en los programas.
El concepto de programa como un conjunto de instrucciones y sus tipos constituye
la parte fundamental del capítulo. La descripción de los elementos básicos de
programación, que se encontrarán en casi todos los programas: interruptores,
contadores, totalizadores, etc., junto con las normas elementales para la escritura
de algoritmos y programas, conforman el resto del capítulo.
En el capítulo se examinan los importantes conceptos de datos, constantes y
variables, expresiones, operaciones de asignación y la manipulación de las entradas
y salidas de información, así como la realización de las funciones internas como
elemento clave en el manejo de datos. Por último se describen reglas de escritura
y de estilo para la realización de algoritmos y su posterior conversión en
programas.
Aprendizaje e Importancia de la Lectura.
Un programa es un conjunto de instrucciones que se proporciona a una
computadora para realizar una tarea determinada. El proceso de programación
requiere las siguientes fases o etapas fundamentales: definición y análisis del
problema, diseño del algoritmo, codificación del programa, depuración y
verificación, documentación y mantenimiento.
En la práctica un programa es una caja negra —un algoritmo de resolución del
problema— que tiene una entrada de datos y una salida de resultados. La entrada
de datos se realiza a través del teclado, ratón, escáner, discos... y la salida se
representa en impresora, pantalla, etc.
Existen diferentes tipos de instrucciones básicas:
•
•
•
•
•
•
Inicio
Fin
Asignación
Lectura
Escritura
Bifurcación
Los elementos básicos constitutivos de un programa son: palabras reservadas,
identificadores, caracteres especiales, constantes, variables, expresiones,
instrucciones a los cuales se unen para tareas de ejecución de operaciones otros
elementos primitivos de un programa, tales como: bucles, contadores,
acumuladores, interruptores y estructuras.
Todos estos elementos manipulan datos o información de diferentes tipos como
numéricos, lógicos o carácter. Los valores de estos datos se almacenan para su
tratamiento en constantes y variables. Las combinaciones de constantes, variables,
símbolos de operaciones, nombres de funciones, etc., constituyen las expresiones
que a su vez se clasifican en función del tipo de objetos que manipulan en:
aritméticas, relacionales, lógicas y carácter.
Otro concepto importante para considerar en la iniciación a la programación es el
concepto y tipos de operadores que sirven para la resolución de expresiones y
constituyen elementos clave en las sentencias de flujo de control que se estudiarán
en los capítulos posteriores.
La operación de asignación es un sistema de almacenamiento de valores en una
variable. Existen diferentes tipos de asignaciones en función de los tipos de datos
cuyos deseos se desean almacenar. La conversión de tipos en operaciones de
asignaciones es una tarea importante y su comprensión es vital para evitar errores
en el proceso de depuración de un programa.
La última característica importante para considerar en el capítulo es la escritura de
algoritmos y programas, para lo que se necesitan unas reglas claras y precisas que
faciliten su legibilidad y su posterior codificación en un lenguaje de programación.
Resolución de Ejercicios.
3.2. ¿Cuáles de los siguientes identificadores no son válidos?
a) XRayo
b) X_Rayo
c) R2D2
d) X
e) 45 (no válido)
f) N14
g) ZZZZ
h) 3μ (no válido)
3.3. ¿Cuáles de las siguientes constantes no son válidas?
a) 234
b) –8.975
c) 12E – 5 (no válido)
d) 0
e) 32,767
f) 1/2
g) 3.6E + 7 (no válido)
h) –7E12
i) 3.5 x 10 (no válido)
j) 0,456
k) 0.000001
l) 224E1
3.4. Evaluar la siguiente expresión para A = 2 y B = 5:
3*A-4*B/A^2
=3*2–4*5/2^2
= 6 – 4 * 5 / = 6 – 4 * 1.25
=6–5
=1
3.5. Evaluar la expresión:
4/2*3/6+6/2/1/5^2/4*2
= 2 * 3 / 6 + 6 / 2 / 1 / 25 / 4 * 2
= 6 / 6 + 6 / 2 / 1 / 25 / 4 *2
= 1 + 6 / 2 / 1 / 25 / 4* 2
= 1 + 3 / 1 / 25 / 4 * 2
= 1 + 3 / 25 / 4 * 2
= 1 + 0.12 / 4 * 2
= 1 + 0.03 * 2
= 1 + 0.06
= 1.06
3.6. Escribir las siguientes expresiones algebraicas como expresiones
algorítmicas:
a) √𝑏2 − 4𝑎𝑐 = sqrt(b ^ 2) – 4 * a * c
b)
𝑥 2+ 𝑦2
= (x ^ 2 + y ^ 2) / z ^ 2
𝑧2
c)
3𝑥 + 2𝑦
d)
𝑎+𝑏
2𝑧
𝑐−𝑑
= (3 * x + 2 * y) / 2 * z
= (a + b) / (c - d)
e) 4𝑥 2 − 2𝑥 + 7 = 4 * x ^2 – 2 * x + 7
f)
𝑥+𝑦
g)
𝑎
𝑥
𝑏𝑐
−
3𝑥
5
= (x + y) / x – (3 * x) / 5
= a / (b * c)
h) xyz = x * y * z
i)
𝑦2 − 𝑦1
𝑥2 − 𝑥1
= (𝑦2 − 𝑦1 ) / (𝑥2 − 𝑥1 )
j) 2𝜋𝑟 = 2 * pi * r
k)
4
3
𝜋𝑟 3 = (4 / 3) * pi * r ^ 3
l) (𝑥2 − 𝑥1 )2 + (𝑦2 − 𝑦1 )2 = (𝑥2 − 𝑥1 ) ^ 2 + (𝑦2 − 𝑦1 ) ^ 2
3.7. Escribir las siguientes expresiones algorítmicas como expresiones
algebraicas:
a) b ^ 2 – 4 * a * c = 𝑏2 − 4𝑎𝑐
b) 3 * X ^ 4 – 5 * X ^ 3 + X 12 – 17 = 3𝑋 4 − 5𝑋 3 + 𝑋12 − 17
c) (b + d) / (c + 4) =
𝑏+𝑑
𝑐+4
1
d) (x ^ 2 + y ^ 2) ^ (1 / 2) = (𝑥 2 + 𝑦 2 )2
3.8. Si el valor de A es 4, el valor de B es 5 y el valor de C es 1, evaluar las
siguientes expresiones:
a) B * A – B ^ 2 / 4 * C = 5 * 4 - 5 ^ 2 / 4 * 1 = 20 – 25 / 4 = 13.75
b) (A * B) / 3 ^ 2 = (4 * 5) / 3 ^ 2 = 20 / 9 = 2.22
c) (((B + C) / 2 * A + 10) * 3 * B) – 6 = (((5 + 1) / 2 * 4 + 10) * 3 * 5) – 6
= ((6 / 2 * 4 + 10) * 15) - 6 = ((3 * 4 + 10) * 15) – 6 = (22 * 15) - 6 = 330 - 6
= 324
3.9. Si el valor de A es 2, B es 3 y C es 2, evaluar la expresión:
A ^ B ^ C = 2 ^ (3 ^ 2) = 2 ^ 9 = 512
3.10. Obtener el valor de cada una de las siguientes expresiones aritméticas:
a)
b)
c)
d)
e)
f)
g)
h)
7 div 2 = 3.5
7 mod 2 = 1
12 div 3 = 4
12 mod 3 = 0
0 mod 5 = 0
15 mod 5 = 0
7 * 10 – 50 mod 3 * 4 + 9 = 70 – 50 % 12 + 9 = 70 – 2 + 9 = 71
(7 * (10 – 5) mod 3) * 4 + 9 = ((7 * 5) % 3) * 4 + 9 = (35 % 3) * 4 + 9 = 17
3.22. Diseñar un diagrama que permita realizar un contador e imprimir los
cien primeros números enteros.
Conclusión del Capítulo.
Este capítulo también habla de cuáles son los elementos importantes que
poseen los programas que es necesario dominar para una adecuada
implementación de los idiomas programación, ejemplo: cambio, ciclos,
contadores, letras y números especiales, constantes. Destaca qué tipos de datos
se utilizan, si son booleanos, cadena, entero, coma flotante, etc.
Lo más probable, de modo que en el caso esencial otros programadores
puedan entender codificar de manera eficiente o traducir ese código a lenguaje
máquina, también da una breve descripción del valor de la documentación del
código programadores el trabajo de leer código largo y ayudar a descubrir qué
trabaja la práctica que el código en el programa.
Me gustaría aclarar que encuentro que la lectura es muy efectiva gracias a todo
lo que dije antes, porque estas son las bases para lograr algoritmos que
funcionen correctamente y ayuden a resolver un problema de forma adecuada.
Descargar