Está en la página 1de 35

PROGRAMACION

INTEGRANTES

KEVIN TAPUY

CARLOS OÑA

ANGEL PRIETO

ING ISRAEL MINDA


UNIDAD 1
TEMAS
1 Codificación de la información.
1.1Codificación de números enteros, reales, caracteres alfanuméricos.
1.2 Representación preliminar de programas de forma inteligible.
Pseudocódigo.
QUE ES UNA CODIFICACION

La codificación es el acto y el resultado de codificar. Este verbo, por su parte, puede


aludir a modificar la expresión de un mensaje o a registrar algo a través de las reglas
de un código.. Para entender qué es la codificación, primero debe quedar en claro qué
es un código. Se trata de una combinación de signos (números, letras, etc.) que tiene
un cierto valor en el marco de un sistema o que posibilita la reformulación y la
comprensión de un mensaje secreto. Los códigos también son recopilaciones de leyes
1.1Codificación de números enteros, reales, caracteres
alfanuméricos
• Enteros: Esta codificación está basada en la observación de que
todo número entero se puede considerar como un número natural,
su valor absoluto, y un signo positivo o negativo.
• Reales: La codificación de números reales utilizando lógica binaria
es significativamente más compleja que el caso de los naturales o
enteros. Parte de esta complejidad deriva del hecho de que si bien
al utilizar un número finito de bits se representaba un intervalo
concreto de números enteros o naturales, en el caso de los
números reales esta técnica no es posible.
• Caracteres alfanuméricos: Los sistemas de codificación
alfanumérica sirven para representar una cantidad determinada de
símbolos en binario. A cada símbolo le corresponderá una
combinación de un número de bits.
1.2 Representación preliminar de programas de forma inteligible. Pseudocódigo.
El pseudocódigo es una forma de expresar los distintos pasos que va a realizar un programa, de la
forma más parecida a un lenguaje de programación. Su principal función es la de representar por pasos
la solución a un problema o algoritmo, de la forma más detallada posible, utilizando un lenguaje
cercano al de programación
EJEMPLO

Leer el radio de un círculo y calcular e imprimir su superficie y su


circunferencia.
El pseudocódigo podría ser:
//Leer el radio de un círculo y calcular e imprimir su superficie y
su circunferencia.
//Análisis
//Entradas: Radio del circulo (Variable RADIO).
//Salidas: Superficie del circulo (Variable SUPERFICIE) y
Circunferencia del circulo (Variable PERIMETRO)
//Variables: RADIO, SUPERFICIE, PERIMETRO de tipo REAL
Proceso Circulo
Definir radio,superficie,perimetro como Real;
Escribir "Introduce el radio de la circunferencia:";
Leer radio;
superficie <- PI * radio ^ 2;
perímetro <- 2 * PI * radio;
Escribir "La superficie es ",superficie;
Escribir "El perímetro es ",perímetro;
UNIDAD 2
TEMAS
2. Introducción a la
programación en C.
2.1 Breve reseña histórica.
2.2 Edición de programas, intérpretes y compiladores.
2.3 Fases de chequeo de código: Compilación, enlazado o
linkado y construcción del programa.
2.4 Partes de un programa en C: Comentarios,
directivas de pre procesamiento, función principal main,
funciones secundarias, finalización del programa.
2.5 Importancia de la estructura: Comentarios, tabulado de
llaves y código.
2.6 Librerías de funciones estándar: stdlib.h, stdio.h, etc
2. Introducción a La programación en C.
1. Alto rendimiento: Es una de sus principales
características, el alto rendimiento que ofrece. Esto
es debido a que puede hacer llamadas directas al
sistema operativo, es un lenguaje compilado para
cada plataforma, posee gran variedad de parámetros
de optimización y se integra de forma directa con el
lenguaje ensamblador.
2. Lenguaje actualizado: A pesar de que ya tiene
muchos años, el lenguaje se ha ido actualizando,
permitiendo crear, relacionar y operar con datos
complejos y ha implementado múltiples patrones de
diseño.
3. Multiplataforma
4. Extendido: C y C++ están muy extendidos. Casi
cualquier programa o sistema están escritos o
tienen alguna parte escrita en estos lenguajes (desde
un navegador web hasta el propio sistema
operativo).
2.1 Breve reseña histórica.

C es un lenguaje de programación de propósito general que


ofrece economía sintáctica, control de flujo y estructuras
sencillas y un buen conjunto de operadores. No es un lenguaje
de muy alto nivel y más bien un lenguaje pequeño, sencillo y no
está especializado en ningún tipo de aplicación. Esto lo hace un
lenguaje potente, con un campo de aplicación ilimitado y sobre
todo, se aprende rápidamente. En poco tiempo, un
programador puede utilizar la totalidad del lenguaje.
2.2 Edición de programas, intérpretes y compiladores.

Un compilador genera un programa “stand-alone” es decir que tiene sentido y se


puede ejecutar por sí solo, mientras que un programa interpretado siempre necesita
su intérprete correspondiente para poder ejecutarse.
Por lo tanto, es más fácil distribuir un programa compilado. El problema es que sólo
podrás ejecutarlo en la plataforma para la que se ha compilado. Cada sistema
operativo (y cada familia de procesadores) necesita una versión compilada diferente.
Por ejemplo, un programa C++ podría ejecutarse en un ordenador con un
procesador x86 pero no en uno con ARM. O podría funcionar en Linux pero no en
Windows.
2.3 Fases de chequeo de código: Compilación, enlazado o linkado y construcción del
programa.

Linker (montador o enlazador


Compilación  
Es el programa encargado de insertar al programa objeto el
Un programa escrito en un lenguaje de código máquina de las funciones de las librerías (archivos de
alto nivel, no puede ser ejecutado biblioteca) usadas en el programa y realizar el proceso de
directamente por un ordenador, sino montaje, que producirá un programa ejecutable exe
que debe ser traducido a lenguaje  
máquina. Las librerías son una colección de código (funciones) ya
Las etapas por las que debe pasar un programado Traducido a código máquina, listo para utilizar en
programa escrito en un lenguaje de un programa y que facilita la labor del programador.
programación, hasta poder  
ser ejecutable son:
2.4 Partes de un programa en C: Comentarios, directivas de pre procesamiento, función principal main,
funciones secundarias, finalización del programa.

Todo programa escrito en C consta de una o más funciones, una


de las cuales se llama main. El programa siempre comenzará
por la ejecución de la función main. Cada función debe
contener:
• Una cabecera de la función que consta de un nombre
• Lista de declaración de argumentos
• Sentencia compuesta
 
2.5 Importancia de la estructura: Comentarios, tabulado de llaves y código.

Llaves Comentarios y códigos

En la mayoría de proyectos de Ejecución del trabajo que se realiza para


JavaScript las llaves están escritas en llevar a cabo cualquier programa a
estilo “Egipcio” con la llave de realizar y verificar
apertura en la misma línea como la su funcionamiento  Los comentarios en
correspondiente palabra clave – no en programación se utilizan para poner
una nueva línea. Debe haber también aclaraciones del código, y así es más
un espacio después de la llave de fácil de entender lo que hace, aunque
apertura, como esto: también se utilizan para anular parte de
un código. Aunque con un sistema de
control de versiones como GIT no sería
necesario hacer eso.
2.6 Librerías de funciones estándar: stdlib.h, stdio.h,

stdio.h,
stdlib.h (std-
lib: standard library o bi
blioteca estándar)  es el archivo de cabecera que contiene las
definiciones de las macros, las constantes,
Es el archivo de cabece las declaraciones de funciones de
ra de la biblioteca están la biblioteca estándar del lenguaje de
dar de propósito genera programación C para hacer operaciones,
l del lenguaje de progra estándar, de entrada y salida, así como
mación C. Contiene los  la definición de tipos necesarias para
prototipos de funciones 
dichas operaciones. Por motivos de
de C para gestión de m
emoria dinámica, contro compatibilidad, el lenguaje de
l de procesos y otras. E programación C++ (derivado de C)
s compatible con C++ también tiene su propia implementación
donde se conoce como  de estas funciones, que son declaradas
cstdlib con el archivo de cabecera
UNIDAD 3
TEMAS
3 TIPOS DE DATOS
3.1 Tipos de variables: Entera, char, números reales, punteros, constantes, variantes
de tamaño short y long.
3.2 Escritura de variables por pantalla con formato. Lectura de variables por pantalla
desde teclado.
3.3 Operadores con variables: operador de asignación, operaciones aritméticas,
incremento, decremento, conversiones de tipos.
3.4 Control de flujo.
3.5 Sintaxis del bucle for.Doble bucle for. Criterios de parada. Operadores
relacionales y lógicos
3.6 Sintaxis de los bucles while y do-while. Ejemplos.
3.7 Bloque if-else-if-else.
Ejemplos.
3.8 Construcción del bloque de opciones switch-case. Sentencias de break y
continue. Ejemplos.
3.1 Tipos de variables: Entera, char, números reales, punteros, constantes, variantes de tamaño short y
long.

• ENTERO: Las variables de tipo entero o int son aquellas que almacenan un número (ya sea positivo o
negativo) no decimal .

• CHAR: permite representar en el sistema numérico binario 2^8 valores = 256. El tipo char puede
contener los valores positivos, igual que negativos. El rango de valores es de -128 a 127.

• NUMEROS REALES: Las variables numéricas, que son aquellas que representan números y con ellas
se pueden realizar operaciones aritméticas. Por contra, están las variables cualitativas, que son
aquellas que no representan números.

• PUNTEROS: Un puntero es una variable que contiene la dirección de otra variable. También


podríamos decir que un puntero es una variable que representa la posición (más que el valor) de otro
dato, tal como una variable o un elemento de un array.

• CONSTANTES: Una constante es un tipo de variable la cual no puede ser cambiada.

• SHORT: permite representar la multitud de valores igual a 2 elevado a 16: 2^16 = 65 536.

• LONG:  aquellas que almacenan un número (ya sea positivo o negativo) no decimaL
3.2 Escritura de variables por pantalla con formato. Lectura de variables por pantalla desde teclado.

 
La entrada y salida de datos en C++ es
simple (al menos para los casos más
comunes). Con esto hago una comparación
entre C++ y Java, pues leer una entrada del
usuario por teclado en C++ es bastante
simple mientras que en Java implica una
serie de conceptos adicionales que la hacen
un tanto más complicada. Por suerte para
nosotros en esta sección veremos cómo
leer por teclado en C++, en otras palabras,
asignar a una variable el valor que el
usuario escriba por el teclado. Adicional a
esto veremos también cómo mostrar texto
por pantalla en C++, es decir, salida de dato
3.3 Operadores con variables: operador de asignación, operaciones aritméticas, incremento, decremento,
conversiones de tipos.

Los operadores Si el operador ++ se indica como prefijo


Los operadores de
aritméticos realizan operacio del identificador de la variable, su valor
asignación devuelven el valor
nes matemáticas, como se incrementa antes de realizar
del objeto especificado por el
sumas o restas con cualquier otra operación. Si
operando izquierdo después
operandos. Hay dos tipos el operador ++ se indica como sufijo del
de la asignación. El tipo
de operadores matemáticos: identificador de la variable, su valor
resultante es el tipo del
unarios y binarios. se incrementa después de ejecutar la
operando izquierdo. El
Los operadores unarios sentencia en la que aparece
resultado de una expresión
realizan una acción con un
de asignación es siempre un
solo operando.
valor L.
Los operadores binarios
Estos operadores tienen
realizan acciones con dos
asociatividad de derecha a
operandos
izquierda.
conversiones de tipo

Conversiones implícitas:
no se requiere ninguna sintaxis especial porque la conversión siempre es correcta y
no se perderá ningún dato. Los ejemplos incluyen conversiones de tipos enteros
más pequeños a más grandes, y conversiones de clases derivadas a clases base.
Conversiones explícitas:
las conversiones explícitas requieren una expresión Cast. La conversión es
necesaria si es posible que se pierda información en la conversión, o cuando es
posible que la conversión no sea correcta por otros motivos. Entre los ejemplos
típicos están la conversión numérica a un tipo que tiene menos precisión o un
intervalo más pequeño, y la conversión de una instancia de clase base a una clase
derivada.
Conversiones definidas por el usuario:
las conversiones definidas por el usuario se realizan por medio de métodos
especiales que se pueden definir para habilitar las conversiones explícitas e
implícitas entre tipos personalizados que no tienen una relación de clase base-clase
derivada. Para obtener más información, vea Operadores de conversión definidos
por el usuario
Conversiones con clases del asistente:
para realizar conversiones entre tipos no compatibles, como enteros y
objetos System.DateTime, o cadenas hexadecimales y matrices de bytes puede
usar la clase
3.4 Control de flujo.

El término control de flujo se utiliza para describir el método en el que un dispositivo serie controla
la cantidad de datos que se transmiten al mismo. La petición de enviar/borrar para enviar
(RTS/CTS) a veces se llama reconocimiento de hardware o ritmo en lugar de control de flujo.
3.5 Sintaxis del bucle for.Doble bucle for. Criterios de parada. Operadores
relacionales y lógicos

Evalúa la condición de continuación: si El funcionamiento del ciclo for, solucionemos un pequeño


el resultado es true se ejecuta el ejercicio práctico, supongamos que queremos mostrar los
bloque de sentencias, se efectúa el números pares (múltiplos de dos :P) entre el 500 y el
cambio de la variable de control y se 1000. Con esta información inmediatamente podemos
evalúa nuevamente la condición de determinar que por medio de un ciclo debemos mostrar
continuación; si el resultado es false una serie de números como la siguiente: 500 502 504 506
el bucle se termina ... 600 ... 852 ... 906 ... 980 .. 1000. 
3.6 Sintaxis de los bucles while y do-while. Ejemplos.

Estos bucles se utilizan cuando queremos repetir


la ejecución de unas sentencias un número
indefinido de veces, siempre que se cumpla una
condición. Se más sencillo de comprender que el while (condición){ //sentencias a
bucle FOR, pues no incorpora en la misma línea ejecutar }

la inicialización de las variables su condición


para seguir ejecutándose y su actualización.

El bucle do...while es la última de


las estructuras para implementar
repeticiones de las que dispone en
JavaScript y es una variación del
bucle while visto anteriormente. Se
do { //sentencias del bucle } while
utiliza generalmente cuando no (condición)
sabemos cuantas veces se habrá
de ejecutar el bucle, igual que el
bucle WHILE, con la diferencia de
que sabemos seguro que el bucle
por lo menos se ejecutará una vez.
3.7 Bloque if-else-if-else.
La sentencia if permite tomar
una decisión para ejecutar
int a = 5, b = 4;
una acción u otra, esta
if (a < b) {
decisión es del tipo booleana
printf (“a es menor que b”);
ya sea verdadero o falso y la
} else {
sintaxis es la siguiente.
printf (“a no es menor que b”);
if(condición)
}
sentencia 1;
[else
sentencia 2];

int a = 10, b = 5, c = 11; Esta estructura else if es una estructura


if (a < b) { consecuente de la sentencia if, en la cual se
printf (“a es menor que b”); evalúan diferentes casos, su forma general es:
} else if (a == b) {
printf (“a es igual que b”); if (condición 1)
} else if (a > c) { sentencia 1;
printf (“a es mayor que c”); else if (condición 2)
41 sentencia 2;
} else { else if (condición 3)
printf (“Ningún caso es verdadero”); sentencia 3;
}
3.8 Construcción del bloque de opciones switch-case. Sentencias de break y
continue. Ejemplos.
Switch(expresión){
case [expresión-constante 1]:
sentencia 1;
break;
case [expresión-constante 2]:
sentencia 2;
break;
default:
sentencia n;
} La sentencia Switch evalúa la expresión entre paréntesis
y compara su valor con las
constantes de cada case. La ejecución de las sentencias
del bloque de la sentencia Switch,
comienza en el case cuya constante coincida con el valor
de la expresión y continúa hasta
el final del bloque, si no existe ninguna variable para case
entra al default, un default
sería como un else poniendo como ejemplo la sentencia
if.
UNIDAD 4
TEMAS
4. Vectores y matrices. Cadenas de caracteres de longitud variable.
Funciones estándar para manejo de cadenas de caracteres.
4.1Funciones. Estructura y prototipo de una función.
4.2Argumentos y retorno de variables de una función.
4.3 Paso de vectores, cadenas y matrices a funciones.
4.4Punteros y memoria. Declaración y operadores de punteros.
4.5Punteros en funciones. Paso por valor y paso por referencia.
4.6Asignación dinámica de memoria. Gestión de archivos. Apertura
de archivos. Puntero a archivo. Función fopen.
4.7Cierre de archivos. Función
fclose. Lectura y escritura en archivos con formato: fprintf y fscanf.
4.8 Lectura y escritura de caracteres en archivos: fgetc, fputc,
fgets, fputs.
4. Vectores y matrices. Cadenas de caracteres de longitud variable. Funciones estándar para
manejo de cadenas de caracteres.

Denominamos matriz de Que sea una cadena de longitud Una cadena de caracteres es una


dimensiones m×n a un variable significa que, si definimos un secuencia de caracteres que termina
conjunto de números campo como "varchar2(10)" y con un carácter especial, que indica el
ordenados en m filas y n almacenamos el valor "hola" final de la cadena, llamado carácter fin
columnas. Un vector no es (4 caracteres), Oracle solamente ocupa de cadena o carácter nulo. Se utilizan
más que un caso particular de las 4 posiciones (4 bytes y no 10 como en C para almacenar y manipular
matriz en el que una de sus en el caso de "char"); por lo tanto, si texto.
dimensiones es 1. la longitud es variable, es conveniente
Denominaremos vector fila a utilizar este tipo de dato y no " ...
una matriz 1 × n y vector
columna a una matriz m × 1.
4.1 Funciones. Estructura y prototipo de una función.

 
Una función tiene un nombre y un conjunto de
instrucciones que son ejecutadas cuando se llama a la
función. Son funciones setup() y loop() de las que ya se
ha hablado anteriormente.
Las funciones de usuario pueden ser escritas para
realizar tareas repetitivas y para reducir el tamaño de un
programa. Segmentar el código en funciones permite
crear piezas de código que hacen una determinada tarea
y volver al área del código desde la que han sido llamado
4.2Argumentos y retorno de variables de una función.
 
Las variables que necesitan las funciones se llaman
argumentos. Antes de que pueda utilizarlos, la función
debe indicar cuántos argumentos necesita y cuál es el
nombre de cada argumento. Además, al invocar la
función, se deben incluir los valores que se le van
a pasar a la función. Los argumentos se indican dentro de
los paréntesis que van detrás del nombre de la función y
se separan con una coma (,).

Estos dos términos; parámetros y argumentos, son a menudo


intercambiados incorrectamente en su uso. El contexto ayuda
a diferenciar su significado. El término parámetro, se usa a
menudo para referirse a la variable en la declaración del
método, mientras que argumento, se refiere al valor que se
envía. Para evitar confusiones, es común ver a un parámetro
como una variable y un argumento como un valor.
Los parámetros aparecen en la declaración de los métodos y
los argumentos en las llamadas a los métodos..
4.3 Paso de vectores, cadenas y matrices a funciones.

Un vector es un array unidimensional, es decir, sólo


utiliza un índice para referenciar a cada uno de los
elementos. Su declaración será:

tipo nombre [tamaño];

El tipo puede ser cualquiera de los ya conocidos y el


tamaño indica el número de elementos del vector ( se
debe indicar entre corchetes [ ] ). En el ejemplo
puedes observar que la variable i es utilizada como
índice, el primer for sirve para rellenar el vector y el
segundo para visualizarlo. Como ves, las posiciones
van de 0 a 9 ( total 10 elementos ).
4.4 Punteros y memoria. Declaración y operadores de punteros.

¿Qué es la declaración de puntero?

Una declaración de puntero identifica una variable


de puntero y especifica el tipo del objeto al que señala la
variable. Una variable declarada como puntero contiene
una dirección de memoria.
Básicamente existen dos operadores para manipular
los punteros, estos son el * y el &. El operador * es
aplicado a un puntero y nos da el valor de la variable
referencia. El operador & se aplica a variables comunes,
nos da la dirección de memoria de variable a la que se
aplica.
La declaración de un puntero de manera general es: Tipo
dato *nombre de apuntador; Tipo dato : Especifica
el tipo de objeto apuntado y puede ser cualquier tipo (int,
float, char, etc). Nombre de apuntador: Es el identificador
(nombre asignado) del apuntador
4.5 Punteros en funciones. Paso por valor y paso por
referencia.

Paso por valor: Se crea una copia local de la La idea es que como solo se puede pasar el valor
variable dentro de la función. Paso por de una variable a una función lo que hacemos
referencia: Se maneja directamente la variable, los es pasar la dirección de una variable a través de
cambios realizados dentro de la función le un parámetro de puntero y luego con el operador
afectarán también fuera. de indirección podemos acceder al contenido de la
variable origina

Básicamente es entregarle a una función, al momento de ser


llamada, alguna variable ya existente. Si queremos que una
función acepte valores externos a ella, es necesario que en su
declaración coloquemos parámetros. Los parámetros serán los
contenedores donde habremos de colocar las variables con las
que nuestra función realizará su trabajo.
4.6 Asignación dinámica de memoria. Gestión de archivos. Apertura de archivos. Puntero a archivo. Función fopen

Antes de abrir un fichero necesitamos declarar un puntero de


tipo FILE, con el que trabajaremos durante todo el proceso.
Para abrir el fichero utilizaremos la función fopen( ).

Una vez que hemos acabado nuestro trabajo con un fichero es


recomendable cerrarlo. Los ficheros se cierran al finalizar el
programa pero el número de estos que pueden estar abiertos es
limitado. Para cerrar los ficheros utilizaremos la función
fclose( );

FILE *pf; char letra='a'; if (!


(pf=fopen("datos.txt","w"))) /* otra forma de
controlar si se produce un error */ { printf("Error al
abrir el fichero"); exit(0); /* abandonamos el
programa */ } else fputc(letra,pf); fclose(pf);^b fgetc(
puntero_fichero );
4.7 Cierre de archivos. Función fclose. Lectura y escritura en archivos con formato: fprintf y
fscanf.

La función fscanf devuelve el nº de valores que han sido


leídos del fichero y almacenados en las variables. Si no
ha podido leer más valores porque ha llegado al final del
fichero, devuelve EOF.
fopen() Abre un archivo. fclose() Cierra un archivo. fgets()
Lee una cadena de un archivo. fputs() Escribe una
cadena en un archivo fseek() Busca un byte especifico de
un archivo.
4.8 Lectura y escritura de caracteres en archivos: fgetc, fputc, fgets, fputs.
•Leer y escribir carácter a carácter (o lo que es lo
Para usarlo, la sintaxis mismo, byte a byte), con funciones
es: fgets(cadena, longitud, como fgetc y fputc.
stream); En donde la cadena •Leer y escribir línea a línea, con funciones
es la variable en donde como fgets y fputs.
almacenaremos lo leído •Leer y escribir un bloque de caracteres (o bytes)
cada vez, con fread y fwrite.
Gracia
s

También podría gustarte