Documentos de Académico
Documentos de Profesional
Documentos de Cultura
CAMPUS APIZACO
Materia:
Introducción a la programación
Tema:
Portafolio de evidencias
Profesor:
José Ruperto Rodríguez Lezama
Alumno:
Daniel Vázquez Morales
Fecha:
14-11-2022
Unidad 1
(introducción a la programación por computadora)
HISTORIA DE LA COMPUTADORA
La historia de las computadoras es una narración de eventos, innovaciones y desarrollos
tecnológicos en el campo de la informática y la automatización que llevaron a la aparición
de lo que llamamos computadoras, computadoras o máquinas de computadoras. También
registra sus mejoras y modernizaciones hasta llegar a versiones en miniatura y rápidas del
siglo XXI.
La invención de este dispositivo en el siglo XX revolucionó para siempre la forma en que
entendemos los procesos industriales, el trabajo, la sociedad y muchas otras áreas de
nuestras vidas.
Antecedentes de la computadora
La historia de la computadora tiene largos antecedentes, que se remontan a las primeras
reglas de cálculo y a las primeras máquinas diseñadas para facilitarle al ser humano la tarea
de la aritmética. El ábaco, por ejemplo, fue un importante adelanto en la materia, creado
alrededor de 4.000 a. C.
También hubo inventos muy posteriores, como la máquina de Blaise Pascal, conocida como
Máquina de Pascal o Pascalina, creada en 1642.
Los intentos del ser humano por automatizar continuaron desde entonces: Joseph Marie
Jacquard inventó en 1802 un sistema de tarjetas perforadas para intentar automatizar sus
telares, y en 1822 el inglés Charles Babbage empleó dichas tarjetas para crear una máquina
de cálculo diferencial.
El primer computador
Harvard diseñó la primera computadora electromecánica en 1944debido a las necesidades
de los aliados durante la Segunda Guerra Mundial.
Al mismo tiempo, en Alemania, se había desarrollado la Z1 y Z2, modelos de prueba de
computadores similares construidos por Konrad Zuse.
Dispositivos de computación: estos realizan todas las tareas que tienen que ver con los
cálculos y operaciones del sistema. También gestionan y controlan el resto de los
componentes del equipo. Entre ellos están la memoria, la tarjeta gráfica, el bus de datos y la
CPU. Este último componente, dentro de la estructura de computadores, se considera el
corazón y el cerebro del equipo.
Dispositivos de comunicación: estos aparatos que se integran en un ordenador hacen
posible que este pueda comunicarse con otro. Tanto si está junto a él como si está a varios
miles de kilómetros. A esta categoría pertenecen el módem, el router y la tarjeta de red.
¿Cuál es la estructura del ordenador o computadora?
La estructura de computadores de un PC es muy sencilla, y generalmente se compone de un
núcleo central y varios periféricos conectados a él. Dentro de este núcleo central se llevan a
cabo todas las operaciones de cómputo del ordenador. Básicamente contiene una unidad de
almacenamiento, memoria, buses de datos, tarjeta de red, tarjeta gráfica y CPU. Si se trata
de un equipo de sobremesa, estos componentes estarán instalados en una estructura en
forma de caja, bien alargada o plana, con varios conectores y puertos en su parte posterior.
A ellos se conectarán el resto de los componentes que permiten trabajar con un ordenador.
Procesador (CPU):
Una CPU es la unidad central de procesamiento de un ordenador, y sin ella, nada funciona
realmente. Casi todo lo que haces en un ordenador tendrá que ser calculado por la CPU de
alguna manera, por lo que tener una CPU rápida (altos relojes y alto número de núcleos)
hará que tu PC sea más rápido.
Cada tipo de CPU tiene un enchufe específico, que se llama 2066, 1151, AM4, TR4 y así
sucesivamente, y la placa madre necesitará exactamente el mismo enchufe para ser
compatible con la CPU.
Este suele ser el primer paso para elegir nuevas piezas para la construcción de tu propio
ordenador. Elige una CPU, comprueba qué enchufe tiene, y luego elige una placa base
compatible.
Fan Cooler, ventilador de la CPU:
Todo lo que consume energía también produce calor y la CPU produce mucho calor. Esto
significa que tiene que ser enfriado para poder funcionar sin problemas. ¿Qué necesitamos
para enfriar un CPU? ¡Un enfriador de CPU!
Asegúrate de tener un CPU-Cooler compatible con tu CPU y tu Socket. Es el mismo que el
de la placa base y el de la CPU. El Enfriador tiene que encajar con la CPU y el Zócalo.
Tarjeta gráfica (GPU):
Lo siguiente es la tarjeta gráfica. Su propósito es el cálculo de cualquier cosa que tenga que
ver con las imágenes y envía estas imágenes (imágenes, interfaz de usuario, GUI) al
monitor.
Hay dos tipos principales de GPU, la GPU integrada (iGPU) y una GPU discreta.
La GPU integrada está integrada en la CPU. Esto significa que algunas CPU ya tienen un
chip gráfico integrado y no se necesita una GPU adicional para conectar un monitor.
Cuando tu CPU tiene gráficos integrados saldrá al adaptador de pantalla de la placa madre.
Lo que pasa con las GPU integradas es que son muy limitadas.
Suelen ser lo suficientemente buenas para tareas ligeras como el procesamiento de textos,
algunos juegos menores y similares, pero tan pronto como quieras sumergirte en tareas de
gran carga gráfica como el renderizado de GPU 3D, juegos de alta gama, edición de vídeo,
diseño gráfico o muchos otros, tendrás que conseguir una GPU discreta.
Una GPU discreta es una GPU que no es parte de la CPU. Normalmente viene en su propia
pequeña placa de circuito impreso (como la de la foto de arriba), que luego se conecta a una
ranura PCI Express de la placa madre.
Memoria (RAM):
La Memoria de Acceso Aleatorio, Random Access Memory (RAM), por sus siglas en
inglés. Es la parte de almacenamiento temporal del pensamiento de la computadora si la
comparas con un cerebro.
La RAM almacena los datos en los que trabaja activamente la CPU. Puede leer y escribir
muy rápido pero pierde todo lo que había almacenado una vez que se apaga. Una placa
madre tiene ranuras de RAM donde la RAM se conecta. La RAM viene en diferentes
tamaños, desde alrededor de 4 GB hasta 32 GB por Módulo en los sistemas actuales. Tener
más Módulos por supuesto multiplicará la cantidad de RAM.
Almacenamiento (HDD / SSD / NVME SSD), Disco Duro:
Debido a que la memoria RAM no puede almacenar nada sin energía y queremos poder
apagar nuestra computadora de vez en cuando, necesitamos un medio de almacenamiento
que conserve sus datos almacenados, incluso cuando la energía está apagada.
Hay 3 tipos principales de almacenamiento masivo:
El HDD
El SSD
El NVME SSD
Los tres hacen más o menos lo mismo, almacenan los datos por ti. La principal diferencia
entre los tres es la velocidad.
Un HDD (que todavía tiene partes mecánicas móviles) es el más lento de los tres y
normalmente leerá y guardará los datos a unos 100MByte/s.
Una SSD ya leerá y escribirá a unos 500MByte/s y una SSD NVME ya lee y escribe datos
secuenciales con hasta 3500MByte/s.
Los discos duros como los SSD se conectan a un enchufe SATA en la placa madre a través
de un cable SATA. También necesitan energía que reciben a través de un cable de
alimentación de la fuente de alimentación, la SSD NVME, sin embargo, sólo se conecta
directamente a la placa madre, es muy pequeña y no necesita cables adicionales.
Unidad de suministro de energía (PSU):
Es la parte del hardware que se encarga de brindarle energía a todos y cada uno de los
componentes de tu computador.
Lo importante es saber cuánta potencia necesitará tu PC actual para funcionar de forma
estable y tal vez cuánta necesites en el futuro si planeas añadir más componentes, como
GPUs o unidades de disco adicionales
Algoritmo
¿Qué es un algoritmo?
Un algoritmo es una serie de instrucciones secuenciales, es decir, que van uno después del
otro que permiten ejecutar acciones o programas. Es crucial para avances tecnológicos
como la inteligencia artificial. Algunos programadores afirman que dicha secuencia es más
importante que el lenguaje de programación y la computadora.
Tipos de algoritmos
En programación se pueden englobar dos tipos de algoritmo.
Cuantitativos:
Son aquellos cuya resolución depende de un cálculo matemático.
Ejemplo: volviendo a Facebook, muchas de las funciones de las métricas son cuantitativas.
Por ejemplo, sumar cuántas vistas tuvo una publicación, el número de interacciones y el
cruce resultante de ambos datos para tener una media.
Cualitativos:
Su resolución no involucra cálculos numéricos, sino secuencias lógicas.
Ejemplo: la inteligencia artificial ha permitido el desarrollo de programas para la detección
de fraudes bancarios.
Diseño de la solución:
Una computadora no tiene capacidad para solucionar problemas más que cuando se le
proporcionan los sucesivos pasos a realizar, esto se refiere a la obtención de un algoritmo
que resuelva adecuadamente el problema. En caso de obtenerse varios algoritmos,
seleccionar uno de ellos utilizando criterios ya conocidos.
Esta etapa incluye la descripción del algoritmo resultante en un lenguaje natural, de
diagrama de flujo o natural de programación.
Como puede verse, solo se establece la metodología para alcanzar la solución en forma
conceptual, es decir ; sin alcanzar la implementación en el sistema de cómputo.
Codificación:
Se refiere a la obtención de un programa definitivo que pueda ser comprensible para la
máquina. Incluye una etapa que se reconoce como compilación.
Si la codificación original se realizó en papel, previo a la compilación deberá existir un
paso conocido como transcripción.
Programa Fuente
Está escrito en un lenguaje de programación. (pascal, C++,Visual Fox, Visual Basic, etc).
Es entendible por el programador.
Programa Ejecutable
Está en lenguaje máquina.
Entendible por la máquina.
Prueba y depuración:
Una vez que se ha obtenido el programa ejecutable, este es sometido a prueba a fin de
determinar si resuelve o no el problema planteado en forma satisfactoria.
Las pruebas que se le aplican son de diversa índole y generalmente dependen del tipo de
problema que se está resolviendo. Comúnmente se inicia la prueba de un programa
introduciendo datos válidos, inválidos e incongruentes y observando cómo reacciona en
cada ocasión.
El proceso de depuración consiste en localizar los errores y corregirlos en caso de que estos
existan. Si no existen errores, puede entenderse la depuración como una etapa de
refinamiento en la que se ajustan detalles para optimizar el desempeño del programa.
Documentación:
Debido a que el programa resultante en esta etapa se encuentra totalmente depurado (sin
errores), se procede a la utilización para resolver problemas del tipo que dio origen a su
diseño. En vista de que esta utilización no podrá ser supervisada en todas las ocasiones por
el programador, debe crearse un manual o guía de operación que indique los pasos a seguir
para utilizar el programa.
Mantenimiento:
Se refiere a las actualizaciones que deban aplicarse al programa cuando las circunstancias
así lo requieran. Este programa deberá ser susceptible de ser modificado para adecuarlo a
nuevas condiciones de operación.
Cualquier actualización o cambio en el programa deberá reflejarse en su documentación.
Unidad 2
(El lenguaje y su entorno integrado de desarrollo)
Estructura de un programa
Estructura general de un programa
Un programa puede considerarse como una secuencia de acciones (instrucciones) que
manipulan un conjunto de objetos (datos).
Tipos de programas
Un programa, por lo general, estará compuesto por una secuencia de acciones, algunas de
las cuales serán alternativas o repetitivas. En determinados programas sencillos, no se da
esta mezcla de acciones, en cuyo caso se pueden clasificar como sigue:
Programas de gestión: se caracterizan por el manejo de gran cantidad de datos con pocos
cálculos (resuelven problemas de gestión).
Programas técnicos-científicos: al contrario que los anteriores, realizan gran cantidad de
cálculos con pocos datos (revuelven problemas matemáticos, físicos, etc.).
Programas de diseño (CAD): se caracterizan por la utilización de técnicas gráficas para
resolver problemas de diseño.
Programas de simulación: intentan reflejar una situación real, para facilitar su estudio.
Programas educativos (EAO): utilizan las ventajas del ordenador para la docencia.
Programas de inteligencia artificial: se utilizan para simular el razonamiento humano.
Constantes y Variables
Constante: Una constante es un dato numérico o alfanumérico que no cambia durante la
ejecución del programa.
Ejemplo:
pi = 3.1416
Variable: Es un espacio en la memoria de la computadora que permite almacenar
temporalmente un dato durante la ejecución de un proceso, su contenido puede cambia
durante la ejecución del programa. Para poder reconocer una variable en la memoria de la
computadora, es necesario darle un nombre con el cual podamos identificarla dentro de un
algoritmo.
Ejemplo:
área = pi * radio ^ 2
Las variables son : el radio, el área y la constate es pi
Tipos de datos
Cuáles son los tipos de datos en programación que existen
Los tipos de datos en un lenguaje de programación pueden ser muy variados, así que es
difícil preguntarte cuantos tipos de datos hay en un lenguaje, ya que incluso puedes crearte
los tuyos propios, mediante enumeraciones o estructuras.
Ponemos tres ejemplos de tipos de datos básicos que son los más utilizados: los números,
los textos y las fechas.
Si estamos trabajando con números, podemos sumar, restar, multiplicar, dividir y muchas
operaciones más, como comparar.
Si estamos con textos, podemos comparar (si son iguales o no), podemos sustituir parte del
texto, añadir texto a uno existente, etc.
Con fechas podemos también sumar o restar fechas (o días, meses, años), compararlas, etc.
Operadores aritméticos, lógicos y relacionales
Los operadores en programación están en categorías dependiendo de su funcionalidad, los
primeros son los operadores aritméticos que a su vez se dividen en binarios y unarios, los
operadores relacionales y los operadores lógicos.
Operadores aritméticos
Binarios: los operadores binarios indican operaciones sencillas de incremento (suma o
multiplicación) y decremento (resta, división y modulo), estos son los operadores binarios:
+: representa la suma de dos o más valores o variables.
–: representa la resta de dos o más valores o variables.
*: representa la multiplicación de dos o más valores o variables.
/: representa la división de dos o más valores o variables.
%: representa el módulo (obtención del residuo de una división) de dos o más valores o
variables.
Unarios: los operadores unarios representan operaciones simplificadas de incremento,
decremento y modificación de signos, estos son los operadores unarios:
++: Incrementa el valor de una variable en una unidad.
—: Decrementa el valor de una variable en una unidad.
–: Cambia el signo de una variable, es como multiplicar por -1.
Operadores Relacionales
Son operadores que se encargan de unir y comparar dos o más valores, siempre se utilizan
en comparaciones de parejas y están dadas por los símbolos:
== : igual que
!= : diferente a
> : mayor que
< : menor que
>= : mayor igual que
<= : menor igual que
Operadores Lógicos
Son operadores de unión, también llamados compuertas lógicas, estos operadores pueden
unir dos o más pares de valores comparados por medio de los operadores relaciones y están
dados por estos símbolos:
&&: Operador AND (Y) quiere decir que todas las condiciones deben ser verdaderas para
que se ejecute una acción.
||: Operador OR (O) quiere decir que de todas las condiciones solo una debe ser verdadera y
se asume que con eso es suficiente para hacer determinada acción.
!: Operador NOT (NO) quiere decir que se niega la afirmación para cambiar su valor, es
decir cambia de verdadero a falso y de falso a verdadero.
Programación estructurada
¿Qué es la programación estructurada?
La programación estructurada es una teoría orientada a mejorar la claridad, calidad y
tiempo de desarrollo utilizando únicamente subrutinas o funciones. Basada en el teorema
del programa estructurado propuesto por Böhm y Jacopini, ha permitido desarrollar
software de fácil comprensión.
Objetivo
El objetivo de la programación estructurada es realizar programas fáciles de escribir,
depurar y modificar. Los programas conseguidos son claros, ordenados, comprensibles, sin
saltos.
Características
Este modo de programación se caracteriza porque los programadores pueden fragmentar el
código fuente de sus programas en bloques lógicamente estructurados, que consisten en
bucles, bloques lógicos y comandos condicionales.
Estructuras de control
El teorema estructural indica que cualquier algoritmo con un único punto de inicio y de
culminación se puede constituir como una composición de tres estructuras de control.
Unidad 3
(Estructuras condicionales, selectivas y repetitivas)
Estructuras condicionales (si, si entonces)
Este comando primero evalúa una expresión condicional lógica y puede devolver verdadero
o falso. Al devolver verdadero se ejecuta el comando entonces, al devolver falso se ejecuta
el comando El Sino. La sintaxis en Pseint es:
Por otro lado, tenga en cuenta que este tipo de declaración no tiene cláusula Sino, tan solo
quedando Si-Entonces y no como un Si-Entonces-Sino.
Sintaxis:
If <comprobación lógica>Then
[Acciones a realizarse si se cumple la condición]
End If
Ejemplo:
Verificar si un número es positivo.
If a > 0 Then
Label1.Caption = "positivo"
End If
WHILE (MIENTRAS)
Repite el cuerpo del bucle mientras se cumpla una determinada condición.
DO- WHILE (HACER MIENTRAS)
La estructura HACER MIENTRAS cumple la misma función que la estructura
MIENTRAS.
La diferencia está en que la estructura MIENTRAS comprueba la condición al inicio y
repetir lo hace al final. Es por ello que la estructura HACER MIENTRAS se ejecuta por lo
menos una vez.
Unidad 4
(Arreglos)
Unidimensionales: conceptos básicos, operaciones y aplicaciones
Conceptos básicos
Un arreglo unidimensional tiene una sola dimensión. A los arreglos de una dimensión
también se les llama listas.
Un arreglo unidimensional es un tipo de datos estructurado que está formado de una
colección finita y ordenada de datos del mismo tipo. Es la estructura natural para modelar
listas de elementos iguales.
El tipo de acceso a los arreglos unidimensionales es el acceso directo, es decir, podemos
acceder a cualquier elemento del arreglo sin tener que consultar a elementos anteriores o
posteriores, esto mediante el uso de un índice para cada elemento del arreglo que nos da su
posición relativa.
Para implementar arreglos unidimensionales se debe reservar espacio en memoria, y se
debe proporcionar la dirección base del arreglo, la cota superior y la inferior.
Operaciones
Para manejar un arreglo, las operaciones a efectuarse son:
Declaración del arreglo
Creación del arreglo
Inicialización de los elementos del arreglo
Acceso a los elementos del arreglo
Aplicaciones
Los elementos de un arreglo son variables del tipo base del vector, por lo que se utilizan de
la misma manera en expresiones y demás instrucciones, como la asignación. Por ejemplo,
para asignar un valor a un elemento de un arreglo basta con escribir:
arreglo[indice] = valor;
en donde arreglo es el nombre de la variable e índice hace referencia a la posición del
elemento al que se le quiere asignar el valor.
Operaciones
Para manejar un arreglo, las operaciones a efectuarse son:
· Declaración del arreglo
· Creación del arreglo
· Inicialización de los elementos del arreglo
· Acceso a los elementos del arreglo
Aplicaciones.
Se necesita manejar, en un arreglo, la posición de todos los caracteres escritos en una
enciclopedia. El arreglo deberá tener las siguientes dimensiones:
Una para manejar el renglón en la página,
otra para la columna en la página,
otra para la hoja en el volumen y
otra para el volumen en la enciclopedia.
Cada página tiene 30 renglones y 80 columnas.
Cada volumen tiene 500 páginas.
La enciclopedia tiene 18 volúmenes.
Unidad 5
(Programación modular)
Declaración de funciones
Un programa de C++ consta de varias entidades, como variables, funciones, tipos y
espacios de nombres. Cada una de estas entidades debe declararse para que puedan usarse.
Una declaración especifica un nombre único para la entidad, junto con información sobre
su tipo y otras características. En C++, el punto en el que se declara un nombre es el punto
en el que se vuelve visible para el compilador
Una definición de función consiste en la declaración y el cuerpo de la función, encerrado
entre llaves, que contiene declaraciones de variables, sentencias y expresiones.
Las variables declaradas dentro del cuerpo se denominan variables locales. Se salen del
ámbito cuando finaliza la función; por lo tanto, una función nunca debe devolver una
referencia a una variable local.
Con parámetros
Los parámetros formales son aquellos especificados en la cabecera de la función (entrada).
Al declarar un parámetro formal hay que especificar su tipo de dato. Los parámetros
formales sólo se conocen dentro del módulo. Los parámetros actuales son las expresiones
pasadas como argumento en la llamada a una función.
Entrada y salida
Definición:
Un stream en C++ es un objeto mediante el cual un programa puede insertar o extraer datos
utilizando los operadores de inserción << y de extracción >> o funciones. Los datos pueden
ser tipos fundamentales (int, char, double, etc.), o cadenas de caracteres. 2. Streams
predefinidos Por defecto, la salida asignada a un programa es la pantalla, y en C++ está
representada por el stream cout a la que se denomina “salida estándar”. Las definiciones
necesarias para su uso están contenidas en el archivo de encabezamiento iostream.
Caracteres, números y variables pueden insertarse en cout mediante el operador de
inserción <<.
Archivos
Archivos en C++
Los archivos o ficheros son la forma en la que C++ permite el acceso al disco.
Todos los procesos tienen abiertos, por defecto, los archivos 0(entrada), 1(salida) y 2(salida
de errores), de manera que en C++ se corresponden con los objetos cin, cout y cerr. De
estos últimos, el primero pertenece a la clase ifstream, que a su vez desciende de istream
(flujo de entrada). Los dos últimos pertenecen a la clase ofstream, que desciende de la clase
ostream (flujo de salida). Una jerarquía aproximada puede verse a continuación.
Archivos de texto
Los archivos de texto son los más sencillos de manejar, pues, como ya se ha mencionado,
para trabajar con ellos se emplean los operadores de inserción y extracción que ya se
conocen de la consola.
Archivos de entrada
El típico recorrido de un archivo de texto desconocido (al igual que uno binario), se hace
con lectura adelantada. Así, si en el directorio donde se ejecuta la aplicación hay un archivo
llamado entrada.txt, se puede volcar por pantalla de la siguiente forma, utilizando la clase
ifstream:
Archivos de salida
Un archivo de salida de texto se maneja con la clase ofstream:
int main()
{
ofstream f( "salida.txt" );
if ( f.is_open() ) {
f << "hola " << endl;
f << 5 << endl;
}
else cerr << "Error de apertura del archivo." << endl;
}
Para leer y volcar por pantalla este archivo que acabamos de generar, se haría lo siguiente:
int main()
{
string s;
ifstream f( "salida.txt" );
if ( f.is_open() ) {
getline( f, s );
cout << s << endl;
getline( f, s );
cout << atof( s.c_str() ) << endl;
}
else cerr << "Error de apertura del archivo." << endl;
}
Archivos binarios
Los archivos binarios se tratan con la clase fstream. En este caso, debemos especificar si se
desea entrada y salida, o sólo entrada o sólo salida. Uno de los usos más típicos es utilizar
el archivo como una pequeña base de datos, utilizando un registro (struct) como referencia.
Recordemos que los registros deben tener todo el mismo tamaño.
Cuando se deseen guardar registros de este tipo en un archivo, se puede hacer de la manera
siguiente:
Persona p1;
Persona p2;
if ( f.is_open() ) {
f.read( (char *) &p, sizeof( Persona ) );
while( !f.eof() ) {
volcar( cout, p );
f.read( (char *) &p, sizeof( Persona ) );
}
} else cout << "Error de apertura de archivo." << endl;
Entrada y salida
Además, los archivos binarios permiten el posicionamiento, tanto del puntero de lectura (el
lugar de dónde se va a leer) como el de escritura (el lugar del archivo donde se va a
escribir). Estos punteros sólo entienden de una posición en bytes en el archivo, y no de
registros.
Siendo prácticos, para avanzar al registro n, será necesario emplear la fórmula: (n-1) *
sizeof( Persona ). Así, para el tercer registro:
f.seekp( 2 * sizeof( Persona ), ios::beg ); // escritura
f.seekg( 2 * sizeof( Persona ), ios::beg ); // lectura
Es posible saber en qué punto del archivo se encuentra uno de los punteros mediante los
métodos:
f.tellg();
f.tellp();
Cadenas
Para las cadenas de texto, la situación se complica un poco: se crean como “arrays” de
caracteres. Están formadas por una sucesión de caracteres terminada con un carácter nulo (\
0), de modo que tendremos que reservar una letra más de las que necesitamos
Longitud de la cadena.
En una cadena que definamos como “char texto[40]” lo habitual es que realmente no
ocupemos las 39 letras que podríamos llegar a usar. Si guardamos 9 letras (y el carácter
nulo que marca el final), tendremos 30 posiciones que no hemos usado. Pero estas 30
posiciones generalmente contendrán “basura”, lo que hubiera previamente en esas
posiciones de memoria, porque el compilador las reserva para nosotros pero no las
“limpia”.
Ejercicio propuesto:
Un programa que te pida una frase y la muestre en pantalla sin espacios. Por ejemplo, si la
frase es Hola, cómo estás?, debería aparecer en pantalla, Hola, cómo estás?.
Existe un posible problema cuando se mezcla el uso de "gets" y el de "scanf": si primero
leemos un número, al usar "scanf("%d", ...", la variable numérica guardará el número...
pero el Intro que pulsamos en el teclado después de introducir ese número queda esperando
en el buffer (la memoria intermedia del teclado). Si a continuación leemos un segundo
número, no hay problema, porque se omite ese Intro, pero si leemos una cadena de texto,
ese Intro es aceptable, porque representaría una cadena vacía. Por eso, cuando primero
leemos un número y luego una cadena usando "gets", tendremos que "absorber" el Intro, o
de lo contrario el texto no se leería correctamente. Una forma de hacerlo sería usando
"getchar":
scanf("%d", &numero);
getchar();
gets(texto);
Cuando queremos dar a una variable el valor de otra, normalmente usamos construcciones
como a =2, o como a = b. Pero en el caso de las cadenas de texto, esta NO es la forma
correcta, no podemos hacer algo como saludo="hola" ni algo como texto1=texto2. Si
hacemos algo así, haremos que las dos cadenas estén en la misma posición de memoria, y
que los cambios que hagamos a una de ellas se reflejen también en la otra.
Elaboración de interfaces
Tipos de Interfaces
La interfaz es de dos tipos que ellos son:
Interfaz Paralelo
Una interfaz paralela transfiere datos en la forma de uno o varios bytes en la paralela a o del
dispositivo.
Este constituye la respuesta de la interfaz a la petición leída emitida por la unidad central de
proceso. Tan pronto como la señal lista se cae a 0, la señal aceptaré es borrada y todo el
ducto es borrado. Note que cuando la memoria intermedia es dirigida, la bandera de estado
de insumo es reinicializada a 0. Este es esencial a fin de garantizar que cada artículo de
datos de insumo es leído por el ordenador sólo una vez. Una operación de producción
procede del mismo modo, cuando la señal habilitaré es puesta a 1.
Interfaz Consecutivo
Una interfaz consecutiva transmite y recibe datos un bit a la vez.
Una interfaz consecutiva contiene el mismo recorrido de control y dirección que la
interface paralela, pero con una adición controla para transferir datos en serie entre registros
y el dispositivo de entrada - salida. Aquí, un chip es usado, que es un barco de circuito
integrado que contiene todo el recorrido lógico para la conversión paralela y consecutiva
requerida.
- Atención a las glosas o textos: cada vez que se necesite colocar un texto en pantalla, ya
sea para reforzar el concepto de un componente o para entregar una instrucción o
advertencia, este deberá ser cuidadosamente escrito, procurando utilizar siempre el mismo
tamaño, color y fuente de letra, dejando fuera el uso de "negrita”, "cursiva" o cualquier otro
elemento que sobrecargue la pantalla más de lo necesario. Aunque suene obvio, los textos
deberán ser siempre lo más concisos y claros posibles, intentando idealmente localizarlos
de acuerdo con la región geográfica donde vayan a ser utilizados.
Recuento y temporización: algunas tarjetas incluyen este tipo de circuitos que resultan
útiles en el recuento de sucesos, la medida de frecuencia y amplitud de pulsos, la
generación de señales y pulsos de onda cuadrada, y para la captación de señales en el
momento preciso.