LA COMPUTADORA
Una computadora es un dispositivo capaz de efectuar cálculos y tomar decisiones lógicas a velocidades millones y millones de veces más rápidas que un ser humano.
Procesan datos que son controlados por conjuntos de instrucciones llamados programas de computo ( conjunto de instrucciones escritas de algún lenguaje de programación y ejecutados secuencialmente resuelven un problema especifico. Dichos programas guían a la computadora a través de conjuntos ordenados de acciones especificados por personas llamadas programadores de computadoras.
Los distintos dispositivos (como , el teclado, pantalla, “ratón”, discos, memoria, CD-ROM y unidades de procesamiento) que forman un sistema de computo se conocen como hardware.
Memoria Auxiliar
Procesador
Unidad de control
Elementos de Entrada + Elementos de Salida
Unidad aritmético lógica
Memoria central
Unidad central de proceso (ucp)
Elemento principal de la computadora y su misión es coordinar controlar o realizar todas las operaciones del sistema consta de:
El software es la parte lógica que dota al equipo físico de capacidad para realizar cualquier tipo de trabajos. Tiene su origen en ideas del elemento humano plasmadas sobre un soporte determinado del elemento hardware y bajo cuya dirección trabaja siempre la computadora.
En la actualidad, en un sistema informativo tiene mayor peso especifico el software que el hardware por ir adquiriendo día a día , el primero , mayor importancia en todos los aspectos (costo, mantenimiento, etc).
El soporte físico de software es:
Por tanto, no podemos desligar el software del hardware, ya que no puede existir el primero sin utilizar como soporte el segundo.
Sistema operativos
Software
Aplicaciones Programas
+
Datos
Un sistema operativo (SO) es un conjunto de programas que permite sacar el máximo rendimiento de la computadora.
![]()
Gestión de equipos
Programas de control Gestión de trabajos
Sistema operativo
Programas de utilidad
Sin importar las diferencias físicas, prácticamente todas las computadoras pueden dividirse en seis unidades o secciones que son:
Seccion “receptora” de la computadora. Obtiene información (datos y programas) de varios dispositivos de entrada y pone a dispoción de las demás unidades. Actualmente la información se introduce pon el ratón y el teclado.
Sección de “embarques” de la computadora. Toma la información que ha procesado la computadora y la pone en varios dispositivos de salida, actualmente la información de las computadoras se presentan en pantalla, se imprime en papel o se utiliza para controlar otros dispositivos.
Seccion de “almacén" de acceso rápido y capacidad relativamente baja de la computadora. Retiene la información que se ha introducido a través de la unidad de entrada, la unidad de memoria también retiene la información procesado hasta que la unidad de salida la pueda colocar en, los dispositos de salida la unidad de memoria es conocida memoria o memoria primaria.
Seccion de “manufactura” de la computadora. Es la responsable de efectuar cálculos como sumar, restar, multiplicar, dividir. Contiene los mecanismos de toma de decisiones que le permite la computadora.
Seccion “administrativa”. Es la coordinadora de la computadora y la responsable de supervisan la operación de otras secciones la cpu le indica a la unidad de entrada cuando debe leer la información y dejar en la unidad de memoria, a la a ALU debe emplearse información de la unidad de memoria para efectuar cálculos.
Seccion de “almacén” de largo plazo y alta capacidad de la computadora los programas y los datos que las demás unidades no están utilizando el momento.
El acceso a la información en almacenamiento secundario tarda mucho mas que a las que se encuentra en memoria primaria. El costo por unidad de almacenamie4nto secundario es mucho menor que el costo por unidad de memoria primaria.
Es una serie de símbolos que sirven para transmitir uno o mas mensajes(ideas) entre dos entidades diferentes. A la transmisión de mensajes se le conoce comúnmente como comunicación.
La comunicación es un proceso complejo que requiere una serie de reglas simples, pero indispensable para poderse llevar a cabo. Las dos principales son las siguientes:
Lenguajes de programación
Es un conjunto de símbolos, caracteres y reglas (programas) que le permiten a las personas comunicarse con la computadora.
Los lenguajes de programación tienes un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, calculo, manipulación de textos, lógica / comparación y almacenamiento / recuperación.
Los leguaje de programación se clasifican :
Son aquellos cuyas instrucciones son directamente entendibles por la computadora y no necesitan traducción posterior para que la cpu pueda comprender y ejecutar el programa.
Las instrucciones se escriben en códigos alfabéticos conocidos como nemotécnicas para las operaciones y direcciones simbólicas.
Son aquellos en los que las instrucciones o sentencias a las computadoras son
Escritas con palabras similares a los lenguajes humanos. Generalmente en
ingles.
PARA ENCENDER LA COMPUTADORA:
PARA HACER AGUA DE LIMÓN
PARA PLANCHAR LA ROPA:
PARA VER LA TELEVISIÓN
PARA SACARLE PUNTA AL LÁPIZ:
PARA LLAMAR POR TELÉFONO:
PARA REGAR LAS PLANTAS
PARA BAÑAR AL PERRO:
PARA LAVAR EL COCHE:
PARA TOMAR EL AGUA
Hirtoria C y C++
C++ fue una evolución de c, el cual surgió de dos lenguajes de programación previos, BCPL y B. BCPL fue desarrollado en 1967 por Martín Richards como lenguaje para escribir Software de Sistemas Operativos y compiladores. Ken Thompson modelo muchas características de su lenguaje B según sus equivalencias en BCPL y se valió de B para crear las primeras versiones del sistema operativo UNIX en los laboratorios Bell durante 1970 en una computadora DEC PDP-7 . Tanto BCPL como B eran lenguajes “sin tipos” – cada elemento de información ocupaba una “palabra” en memoria y la tarea de tratar cada elemento de datos como número entero o número real, por citar un ejemplo, recaía en el programador.
El lenguaje C fue una evolución del B llevada a cabo por Dennis Ritchie en los laboratorios Bell y originalmente se implementó en una computadora DEC PDP-11 en 1972. C se vale de muchos conceptos básicos de BCPL y de B, añadiendo tipos de datos y otras características. Al principio C se volvió ampliamente conocido como el lenguaje de desarrollo del sistema operativo UNIX. Durante las últimas dos décadas, C ha quedado disponible en casi todas las computadoras. C es independiente del hardware. Con un diseño cuidadoso es posible escribir programas en C que pueden ser portable para utilizarse en la mayoría de las computadoras.
La amplia difusión de C a varios tipos de computadoras las veces llamados plataformas de hardware., por desgracia, tuvo como consecuencia que hubiera demasiadas variantes. Eran parecidas, pero frecuentemente incompatibles.
Esta era un serio problema para los desarrolladores de programas que necesitaban escribir programas portables que se ejecutaban en varias plataformas.
Quedo claro que se requería de una versión estándar de c. En 1983 se creo el comité técnico x3j11 bajo el ANSI en computadoras y Procesamiento de información (X3) para proporcionar al lenguaj3ew una definición inequívoca e independiente del equipo. En 1989 se aprobó el estándar ANSI coopero con la ISO en la estandarización mundial de C; el documento conjunto del estándar se publico en 1990 y se conoce como ANSI/ISO 9899; 1990. Es posible solicitar a ANSI copias de este documento . La segunda edición de Kernigman y Ritchie, publicada en 1988, refleja esta versión llamada ANSI C.
A principios de la década de los 80,, Bjarne stroustrup desarrollo a C++ una extensión de c en los laboratorios Bell. C++ ofrece una serie de características que “engalanan” al lenguaje C; sin embargo, lo mas importante es que proporciona capacidades para la programación orientada a objetos.
ALGORITMO
La palabra algoritmo se deriva de la traducción de latín de la palabra árabe alkhowarizmi, nombre de un matemático y astrónomo árabe que escribió un tratado sobre manipulación de números y ecuaciones en el siglo IX.
Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir , para dar solución a un problemas especifico.
Tipos de algoritmo:
v Cualitativos:
Son aquellos en los que se describen los pasos utilizando palabras.
v Cuantitativos:
Son aquellos en los que se utiliza calculos números para definir los pasos del proceso.
Lenguajes algorítmicos:
Es una serie de símbolos y reglas que se utilizan para decribir de manera
Explicita de un proceso.
Tipos de lenguajes algorítmicos:
v Gráficos:
Es la representación grafica de las operaciones que realiza un algoritmo
( diagrama de flujo ).
v No gráficos:
Representan en forma descriptiva las operaciones que debe realizar un algoritmo (pseudocodigo).
Comandos
1.
asm
C++ dispone de la opción de poder escribir directamente instrucciones en lenguaje ensamblador junto con el resto de código fuente. Para esto dispone de una palabra clave especifica: asm. La palabra asm indica que la cadena literal que sigue será induida en el código objeto en la posición indicada.
La sintaxis empleada depende del copilador:
Asm <opcode><operador><;o NL>
2.
Delete
El operador delete (palabra clave) ofrece una desasignacion dinámica de memoria, desasignado un bloque previamente asignado con new. Es similar pero superior a la función free de la librería estándar.
Sintaxis:
<: : >delete<cast-expression>
3.
Throw
Se lanza una excepción (throw).
Si se detecta una circunstancia excepcional dentro del bloque – intento, se lanza una excepción mediante la ejecución de una sentencia throw. Por ejemplo: if (condicion) throw “overflow”. Es importante advertir que salvo los casos en que la excepción es lanzada por las propias librerías C++ estas no se lanzan espontáneamente. Es el programador el que debe utilizar una sentencia para en su caso, lanzar la excepción.
El lenguaje C++ especifica que todas las excepciones deben lanzadas desde el interior de un bloque.
4.
Try
En síntesis podemos defir que el programa se prepara para cierta acción, decimos que “lo intenta”. Para ello se especifica un bloque de códigos cuya ejecución se va a intentar (“Try-block”) utilizando la palabra clave try.
Sintaxis: try{// bloque de código-intento...}
5.
bool
La palabra –clave bool declara un tipo especial de variable (denominada bodeana) que solo puede tener dos valores: cierto y falso [].
Sintaxis:
bool
<identificador>
6. wchart_t
Esta palabra clave identifica un tipo especial el carácter ancho.
Como actualmente el juego de caracteres internacional es nicode que utiliza 2 bytes, este es el tamaño mínimo de wchart_t de la mayoría de los copiladores.
Sintaxis:
Wchart_t <identificador>
7. dynamic_cast
El operador dynamic_cast se refiere a conversiones de punteros y referencias a clases por lo que su estudio exige un buen conocimiento previo de muchos conceptos relacionados con ellas.
Sintaxis:
Dynamic_cast<1>(arg):
8.
mutable
Se trata de una palabra clave que solo puede ser aplicada a miembros de clases. Mutable es un especificador de tipo almacenamiento, cuyo propósito es informar al compilador que el miembro señalado (que debe ser propiedad) pueden ser modificado bajo cualquier circunstancia.
Sintaxis:
Mutable <nombre_de_propiedad>:
9.
template
C++ utiliza una palabra clave especifica témplate para definir funciones y clases genéricas, y actúa como un especificador de tipo.
Sintaxis:
template (Palabra_clave)
10.
typeid
La palabra clave typeid identifica un operador con el que puede obtenerse el tipo de objetos y expresiones en tiempo de ejecución; permite comprobar si un objeto es de un tipo particular y si dos objetos son del mismo tipo.
Sintaxis:
Typeid (expresion)
Typeid (nombre_de_tipo)
11.
explicit
Sintaxis:
Explicit <declaración de constructor de un solo parámetro>
12.
namespace
Como se vera a continuación, los espacios de nombres son en realidad un recurso de C++ para resolver algunos existentes en el C clásico relativos al manejo de identificadores.
Sintaxis:
Namespace
ALPHA
Long double
I.D:
Float
f(floaty)½retumy:½
13.
class
La construcción de una clase partiendo desde cero, es decir, cuando no deriva de un clase previa, tiene la siguiente sintaxis:
Calass_key <info> nov_clase / lista <lista>
14.
this
Se ha mencionado que cada instancia de una clase tiene su propio juego de variables propiedades privativas o heredadas (según el caso), y que unas y otras se direccionan del mismo modo sin embargo, aunque esto es cierto para las propiedades no lo es para los métodos , sobre esta cae la palabra this.
15.
typename
La palabra clave typename es un especificador de tipo.
Indica justamente eso, que el identificador que la acompaña es un tipo:
Template <typename identificador> identificador_de_clase.
16.
const_cast
Identficar un operador de uso muy especifico. Sirve para poner o quitar los atributos const o volatile de un objeto.
Sintaxis:
Const_cast<T>(arg)
17.
reinterpret_cast
Las conversiones de tipo que se realizan con este operador podríamos decir que son por la “fuerza bruta” obligamos al compilador a aceptar un tipo de objeto por otro sin rechistar, por muy lógica que sea transformación.
Sintaxis:
Reinterpret_cast<T>(arg)
18.
friend
Es un especificador de acceso; se usa para declarar que una función o clase (la denominaremos “invitada”) tiene derecho de acceso a los miembros de la clase en que se declara (denominada “anfitriona”) sin que la clase invitada tenga que ser miembro de la anfitriona.
Sintaxis:
Friend<identificador>
Friend(palabra-clave)
19.
new
Proporciona espacio de almacenamiento persistente, similar pero superior a la función de librería estándar malloc. Permite crear un objeto de cualquier tipo, incluyendo tipos definidos por el usuario y devuelve un puntero (del tipo adecuado al objeto creado).
Sintaxis:
<::>new <situación>tipo x<(iniciador)>
<::>new <situación>(tipo x)<(iniciador)>
20.
static_cast
Operador modelo que se recomienda para todas aquellas situaciones en que esta perfectamente definido de tipo de conversión deseado.
Sintaxis:
Static_cast<T>(arg)
21.
inline
Las funciones miembro deben declararse dentro del cuerpo de la clase: la definición puede hacerse dentro o fuerza en el primer caso, cuando declaración y definición se realizan dentro del cuerpo de la clase, se denominan funciones inline; la razón es que este tipo de métodos se suponen [2 con el especificador inline implicito].
Sintaxis:
Inline char x func(void)(return 1) //
definición.
22. true
True tiene el valor cierto (numéricamente es 1)
Val = true //ahora se cambia su valor
true = 0 //error!
23.
false
False tiene el valor falso (numéricamente es 0)
bool val = false // declara val variable booleana y la inicia.
24.
using
Los miembros de un subespacio puede ser accedidos individualmente con la declaración using.
Sintaxis:
Using::identificador
25.
operator
Conforma el identificador de la función operador.
<tipo de vuelto> operator +(1°...°1)(1...1)
26.
catch
La excepción es capturada en un punto especifico del programa (catch) . Puede hacer varias cosas: relanzar la misma excepción, saltar a una etiqueta, terminar su ejecución normalmente.
27.
virtual
Clases base virtuales.
Hemos señalado que en herencia múltiple, las clases antecesoras no pueden repetirse.
Class B{...}
Class D: B, B...{…}://¡legal!
La sintaxis de la palabra _ clave virtual dos variantes que reflejan la dualidad de su utilización.
Virtual <nombre_de_clase>
Virtual <nombre_de_funcion_mienbro>
28. public
main ()
clrscr ():
public: int
x, y.
29. printf
Imprime en la pantalla una cadena de caracteres (texto) descritas por las comillas.
Printf (“mensajes que aparecen en la pantalla; in”)
30.
scanf
Obtiene un valor mediante el usuario, por medio de el teclado.
% d_indica que el numero deberá ser entero 8c integer_variable almacenada.
Scanf(%d, 8c
integer 1);
31. main
A partir de esta función todos los programas empiezan a ejecutarse, los paréntesis después de main indica que main es un bloque constructor del programa.
Main()
32.
vetum
Esta sentencia sale de la función donde se encuentra y devuelve el control a la rutina que la llamo opcionalmente con un valor de retorno.
Return
<expresion>;
33. if/else
Permite al programador especifique que se ejecuten acciones distintas cuando la condición sea verdadera que cuando la condición sea falsa.
If (los estudiantes pasan)
Printf “pf”
34.
while
Permite al programador especificar que se repita una acción, en tanto cierta condición se mantenga verdad. La condición puede ser falsa o verdadera.
While (producto<=100)
35.
for
bucle o instrucción que ejecute tantas veces como se cumplan las condiciones especificas dentro del paréntesis de la instrucción.
For [ <iniciacion>];[<condicion>];[<incremento>]
La sentencia se ejecuta repetidamente hasta que la evaluación de la condición resulte falsa.
36.
int
Devuelve el valor absoluto de alguna variable.
iont
abs(int;)
37.
atof(s):
Devuelve la cadenas a una cantidad de doble precisión y requiere el llamado de la biblioteca.
<match.h>
38. atoid(s)
Convierte la cadena de un entero, la cadena debe tener el siguiente formato.
39.
attand(d)
Devuelve el arco trascendente de d, calcula el arco tangente el argumento x, requiere el llamado de la biblioteca.
<complex.h>
40. atol(s)
Convierte la cadena a un entero largo la cadena de tener el siguiente formato [espacio en blanco][signo cadd] siendo obligatorio los signos decimales.
41. calloc(n,s)
Reserva memoria para una formación de “n” números o elementos cada uno de “s” bytes, devuelve un puntero al principio del espacio reservado.
42.
ceil(d)
Devuelve una valor redondeado.
43.
cos(d)
Devuelve el coseno de d.
44.
exit(u)
Cierra todos los archivos y buffer y termina el programa, el valor de u es asignado por la función para indicar el estado de terminación.
45.
exp(d)
Eleva a la potencia “d” base del sistema de logaritmos naturales.
46.
fgetch(f)
Lee un carácter del archivo f.
[int fgetch (file f);]
47. fegts (s, i, f)
Lee una cadena s, con i caracteres, del archivo f .
char*
fgets(char s, ints, file * f)
48.
floor
Devuelve un valor redondeado por defecto al entero menor mas cercano.
Double floor
(double “d”)
49.
fmod
Devuelve el resto de dl / dz (con el mismo signo que dl)
double fmod
(double dl, double dz)
50. fopen (s1, s2)
Abre un archivo llamado s1, del tipo s2.
Devuelve un puntero al archivo
File * fopen
(const char*s1, cont char s2)
51. fpute(c,f)
Escribe un carácter en el archivo f.
int fpute
(intc, file * f)
52. fread (s,i,lz, f)
Lees lz elementos , cada uno de tamaño i 1 bytes, desde el archivo “f” hasta la cadena “s”.
53.
free
(p)
libera un bloque de memoria resrvada cuyo principio esta indicado por P.
Void free
(void*dir_memoria)
54.
fseefr
Mueve el puntero al archivo f a una distancia de 1 bytes desde la posicion i , (i puede ser el principio del archivo la posición actual del puntero o el fin del archivo .
int fseek
(file*filons desplaza, int origen)
55. ftell(f)
Devuelve la posición actual del puntero dentro del archivo f.
Long int
ftell (file* f)
56.
getchar()
Lee un carácter desde el dispositivo de entrada estándar.
( intgetchar [voil] )
57. gets(s)
Lee una cadena de caracteres desde el dispositivo estándar.
(chargets [char * cad])
58.
I
salnum
Determina si el argumento es alfanumérico devuelve un valor distinto de cero; si es cierto ; en otro caso de vuelve 0.
Int isalnum
(int c)
59.
I
salpha ©
Determina si el argumento es alfabetico devuelve un valor distinto de 0 sie s cierto en otro caso devuelve 0
Int i salpha
(int c)
60.
isascii
Determina si el argumento es de carácter ASCII, devuelve un valor distinto de 0, si es cierto en otro caso devuelve caro 0.
int isascii
(int c)
61.
iscntrl©
Detrmina si el argumento es un carácter ASCII, de control, devuelve un valor distinto de 0 si es cierto en otro caso devuelve cero 0.
Int
isntrl(int c)
62.
isdigit
(c)
Determina si el numero es un entero decimal, devuelve un valor distinto de cero, si es cierto en otro caso devuelve 0.
Int isdigit
(int c)
63.
isprint
©
determina si el argumento es un caracter ASCII
(int isprint
c)
64.
ispunct
detrmina si el caracter es el elemento de puntuacion.
Int ispunct
(int c)
65.
isspace
©
determina si el argumento es un espacion en blanco.
Int isspace ©
66. Isupper ©
Determina si el argumento es una mayúscula.
Int Isupper
67. Isxdigit ©
Identifica si es un número hexadecimal
Int isxdigit
(int c)
68.
labs
(1)
Devuelve el valor absoluto de 1
int labs (log
int)
69.
log
10
Devuelve el logaritmo en base lo double los (double d)
70.
malloc
Reserva dicha cantidad de bytes devuelve un puntero al principio del espacio reservado.
71.
pow
Devuelve el valor de alguna variable a la potencia
double pow
(double d1, double d2).
72.
yand
()
Devuelve un entero positivo aleatorio.
Int rad
(vold)
73.
rewind
(f)
Void rewind (file * f) y esta orden mueve el puntero al principio del archivo f.
74.
sinn(d)
Devuelve el seno (d)
75.
sinn(d)
Devuelve el seno hiperbólico de (d)
double sinn
(double d)
76.
sqrt
(d)
Devuelve la raíz cuadrada (d)
double sqrt
(double d)
77.
srand
(d)
inicializa el generador de números aleatorios vold srand (unsigned u)
78. strcmp (s1,s2)
Compara dos cadenas de caracteres lexicograficamente, devuelve un valor negativo si s1<s2, si s1, s2 = idénticas
int
strcmp(const char * s1 const char s2).
79. stcmpi (s1, s2)
Compara dos cadenas lexicograficamente sin diferenciar mayúsculas de minúsculas .
int stcmpi
(cont char * s1, cont s1 char s2).
80.
time
(p)
Devuelve el numero es segundos .
Tine : t time
(time t*h)