Upload
arito-silva
View
235
Download
2
Embed Size (px)
DESCRIPTION
Elemento 1
Citation preview
1
Aracelly Silva Tercer Semestre
Ing. Wilma Gavilanez
FACULTAD DE CIENCIAS
HUMANAS Y DE LA EDUCACIÓN
CARRERA DE DOCENCIA EN
INFORMÁTICA
PROGRAMACION II
ELEMENTO 1
2
Introducción al lenguaje c
EL lenguaje C es el resultado de un proceso de desarrollo que inició con
un lenguaje denominado BCPL. Este influenció a otro llamado B (inventado por Ken
Thompson). En los años 70; éste lenguaje llevó a la aparición del C.
Con la popularidad de las microcomputadoras muchas compañías comenzaron a implementar
su propio C por lo cual surgieron discrepancias entre sí.
Por esta razón ANSI (American National Standars Institute, por sus siglas en inglés), estableció
un comité en 1983 para crear una definición no ambigüa del lenguaje C e independiente de la
máquina que pudiera utilizarse en todos los tipos de C.
Algunos de las C existentes son:
-Quick C
-C++
-Turbo C
-Turbo C ++
-Borland C
-Borland C++
-Microsoft C
-etc.
C es un lenguaje de programación de nivel medio ya que combina los elementos del lenguaje
de alto nivel con la funcionalidad del ensamblador.
Su característica principal es ser portable, es decir, es posible adaptar los programas escritos
para un tipo de computadora en otra.
Otra de sus características principales es el ser estructurado, es decir, el programa se divide en
módulos (funciones) independientes entre sí.
El lenguaje C inicialmente fue creado para la programación de:
-Sistemas operativos
-Intérpretes
-Editores
-Ensambladores
-Compiladores
3
-Administradores de bases de datos.
Actualmente, debido a sus características, puede ser utilizado para todo tipo de programas.
Lenguaje c
C es un lenguaje de programación de propósito general asociado, de modo universal, al
sistema operativo UNIX. Sin embargo, la popularidad, eficacia y potencia de C se ha producido
porque este lenguaje no está prácticamente asociado a ningún sistema operativo, ni a ninguna
máquina en especial.
Esta es la razón fundamental por la que C es conocido como el lenguaje de programación de
sistemas por excelencia.
También C se define como un lenguaje de programación estructurado de propósito general;
aunque en su diseño también primó el hecho de fuera especificado como un lenguaje de
programación de sistemas, lo que proporciona una enorme cantidad de potencia y flexibilidad.
En la actualidad, el lenguaje C sigue siendo uno de los más utilizados en la industria
del software, así como en institutos tecnológicos, escuelas de ingeniería y universidades.
Ventajas del lenguaje C
El lenguaje C tiene una gran cantidad de ventajas sobre otros lenguajes y constituyen
precisamente la razón fundamental de que después de casi dos décadas de uso C siga siendo
uno de los lenguajes más populares, utilizados en empresas, organizaciones y fábricas de
software de todo el mundo.
C se caracteriza por su velocidad de ejecución. En los primeros días de la informática los
problemas de tiempo de ejecución se resolvían escribiendo todo o parte de una aplicación en
lenguaje ensamblador (muy al lenguaje de máquina).
Debido a que existen muchos programas escritos en el lenguaje C, se han creado numerosas
bibliotecas C para programadores profesionales que soportan gran variedad de aplicaciones.
Características del lenguaje C
Hay numerosas características que diferencian al lenguaje C de otros, y lo hacen eficiente,
potente, eficaz, rápido, indispensable para todos los programas. Algunas son:
Una nueva sintaxis para declarar funciones. Una declaración de función puede añadir
una descripción de los argumentos de la función. Esta información adicional sirve para
que los compiladores detecten más fácilmente lo errores causados por argumentos
que no coinciden.
Asignación de estructuras (registros) y enumeraciones.
Preprocesador más sofisticado.
Una nueva definición de la biblioteca que acompaña a C. Entre otras funciones se
incluyen: acceso al sistema operativo (por ejemplo, lectura / escritura de archivos),
4
entrada y salida con formato, asignación dinámica de memoria, manejo de cadenas de
caracteres.
Una colección de cabeceras estándar que proporciona acceso uniforme a las
declaraciones de funciones y tipos de datos.
Desventajas:
No dispone de editor propio
Se requiere más tiempo en conseguir el ejecutable, porque cada vez compila todo
el fichero.
La modularidad en C tiende a incrementar el tiempo de compilación
Poco legible y eminentemente críptico
TIPOS DE DATOS
Básicos:
- Numéricos:
· Entero palabra clave int
· Real precisión simple float
- Carácter: char
- Vacio: void
-Estructurados:
- Complejos
Estáticos Tabla
- Dinámicos Lista
Pila
Cola
Árbol
Grafo
- Compuestos. Estructura
Unión
Enumeración
5
Campos de Bit
Definidos por el Usuario Typedef
OPERADORES:
Son símbolos que en C tienen un significado determinado y que indican al procesador que
tiene que hacer una operación determinada.
Operadores de Expresión
Paréntesis ( )
1- Determinan la máxima prioridad en la expresión, comenzando por los internos
2- Para encerrar los parámetros de una función
Corchetes [ ]
1 Encierran los índices de tablas.
Operadores Aritméticos:
Monarios, necesitan un solo valor
Signo negativo -
Incremento ++
Decremento --
Binarios, necesitan dos valores
Suma +
Resta -
Multiplicación *
División /
Módulo %
Operadores Relacionales y Lógicos:
Relacionales:
Menor que <
Menor o igual que <=
Mayor que >
6
Mayor o igual que >=
Igual a ==
Distinto !=
No confundir este operador == con el operador asignación =
Lógicos:
Conjunción Y &&
Disyunción O ||
Negación !
Operadores Para tratamiento de Bits:
Se utilizan para realizar operaciones a nivel de bit, y los operandos deben ser de tipo char o int.
Y (AND) Binario &
O(OR) Binario |
O Exclusivo XOR ^(ASCII 94)
Complemento Not ~(ASCII126)
Desplaz. Derecha >>
Desplaz. Izquierda <<
Operadores de Asignación:
Se utilizan para cargar una variable con el valor de expresión. Pueden ser de dos tipos, simple o
compuesto.
Asignación Simple:
Variable = Expresión: media = suma / num;
Asignación Compuesto
Variable simbolo_operación = Expresión
Esta asignación es equivalente a:
Variable = Variable Simbolo_operación (expresión)
7
Operadores coma
Se utiliza para separar dos expresiones dentro de una expresión total.
1- para realizar una asignación de una expresión, que previamente requiere otra
expresión a=(b=5,b+2); equivale a b=5; a= b+2
2- Para realizar varias operaciones dentro de la condición de un bucle.
For (i=0, k=15, i<k; k--)
Operador tamaño
Se utiliza para obtener la longitud en bytes de una variable o de un especificador de dato.
Sizeof(int) Obtiene la longitud de un tipo de datos.
Sizeof permite obtener la longitud de una estructura sin necesidad de sumar las longitudes de
cada una de las variables
Struct datos {int num; char nom[40];float abono;}socio;
Sizeof socio
Operador de molde
Se utiliza para convertir un tipo de dato en una expresión.:
(Tipo) Operando
float a = 9,25;
b= (int) a / 2;
8
Operador condicional
Se utiliza para realizar una operación alternativa mediante una condición.
Expresión1 ; expresión2 : expresión3;
Se evalúa la expresión 1 si el resultado es verdadero se evalúa la expresión 2 y su resultado se
toma como resultado de la expresión total, por el contrario si el resultado es falso se ejecuta la
expresión 3.
Result = (a>b) ; a : b;
Es equivalente a : If (a >b ) result = a; else result = b;
IDENTIFICADORES
Los identificadores son nombres de referencia a constantes , variables, , estructuras de datos,
funciones que se pueden aplicar.
Se pueden utilizar palabras clave excepto las 32 siguientes que están reservadas para el
lenguaje C estándar:
Auto break case char const continue default do
Double else enum extern float for goto if int
Long register return short signed sizeof static struct
Switch typedef union unsigned void volatile while.
ELEMENTOS GENERALES DE UN PROGRAMA EN C
Aunque cada uno de los programas son distintos, todos tienen características comunes. Los
elementos de un programa en C son los siguientes:
9
Comentarios
Inclusión de archivos
main()
{
variables locales
flujo de sentencias
}
Programación estructurada
El lenguaje C la unidad básica de programación es la función, los programas están formados
por módulos. Cada módulo realiza una tarea específica y es un subprograma independiente.
Los programas estructurados tienen un conjunto de módulos relacionados lógicamente como
una unidad integrada.
Todo programa en C consta de una o más funciones, una de ellas es main. El programa siempre
comienza por la ejecución de la función main. Se pueden definir algunas funciones adicionales
pueden preceder a main.
Cada función debe contener:
1.- Una cabecera de la función, que consta del nombre de la función, despues unos parentesis
para una lista opcional de argumentos.
2.- Después el cuerpo de la función que describe el conjunto de sentencias o conjunto de
instrucciones encerradas por un par de llaves. Cada sentencia de expresión debe terminar con
punto y coma (;).
Los comentarios pueden aparecer en cualquier parte del programa, deben estar entre los
limitadores /* esto es un comentario */ sirven para documentar el código.
10
VECTORES
Un vector, también llamado array(arreglo) unidimensional, es una estructura de datos que
permite agrupar elementos del mismo tipo y almacenarlos en un solo bloque de memoria
juntos, uno después de otro. A este grupo de elementos se les identifica por un mismo nombre
y la posición en la que se encuentran. La primera posición del array es la posición 0.
Podríamos agrupar en un array una serie de elementos de tipo enteros, flotantes, caracteres,
objetos, etc.
Ejm:
1
2
3
int a[5];//Vector de 5 enteros
float b[5];//vector de 5 flotantes
Producto product[5];//vector de 5 objetos de tipo Producto
Los vectores son una forma de almacenar datos que permiten contener una serie de valores
del mismo tipo, cada uno de los valores contenidos tiene una posición asociada que se usará
para accederlos. Está posición o índice será siempre un número entero positivo.
En C la cantidad de elementos que podrá contener un vector es fijo, y en principio se define
cuando se declara el vector. Los vectores se pueden declarar de la siguiente forma:
tipo_elemento nombre[largo];
Esto declara la variable nombre como un vector de tipo_elementos que podrá
contener largo cantidad de elementos, y cada uno de estos elemento podrá contener un valor
de tipotipo_elemento.
Por ejemplo:
double valores[128];
En este ejemplo declaramos un vector de 128 elementos del tipo double, los índices de los
elementos irían entre 0 (para el primer elemento y 127 para el último).
De la misma forma que con las otras declaraciones de variables que hemos visto se le puede
asignar un valor iniciar a los elementos.
O también se pueden declarar:
tipo_elemento nombre[largo]={valor_0, valor_1, valor_2};
En caso estamos asignandole valores a los primeros 3 elementos del vector nombre. Notar
que largo debe ser mayor o igual a la cantidad de valores que le estamos asignando al vector,
en el caso de ser la misma cantidad no aporta información, por lo que el lenguaje nos permite
escribir:
11
tipo_elemento nombre[]={valor_0, valor_1, valor_2};
Que declarará nombre como el vector de largo 3.
Para acceder a un elemento accederemos a través de su posición. Es decir:
tipo_elemento elemento;
...
elemento = nombre[2];
Asumiendo que tenemos el vector anterior definido estaríamos
guardando valor_2 en elemento.
Metodo de Burbuja (Buble Sort)
El método de ordenamiento de burbuja, es un algoritmo que se aplica para poder ordenar una
cantidad de datos ya sea de forma ascendente o descendente.
Es el algoritmo más fácil de implementar, pero a cambio pagamos un alto precio en
procesamiento, ya que este método evalúa una cantidad los datos muchas veces y en
ocasiones innecesariamente (como por ejemplo cuando son iguales).
Por medio de este método podremos ordenar array, estructuras y cualquier tipo de dato NO
atómico (es decir que se pueda dividir)
ORDENACIÓN POR EL MÉTODO DE LA BURBUJA
Este método consiste en acomodar el vector moviendo el mayor hasta la última casilla
comenzando desde la casilla cero del vector hasta haber acomodado el número más grande el
la última posición, una vez acomodado el más grande, prosigue a encontrar y acomodar el
siguiente más grande comparando de nuevo los números desde el inicio del vector, y así sigue
hasta ordenar todo los elementos el arreglo. Este algoritmo es muy deficiente ya que al ir
comparando las casillas para buscar el siguiente más grande, éste vuelve a comparar las ya
ordenadas. A pesar de ser el algoritmo de ordenamiento más deficiente que hay, éste es el
más usado en todos los lenguajes de programación.
FUNCIONES CON MATRICES
Las matrices se declaran de forma análoga, con corchetes independientes para cada subíndice
DIAGONALES DE UNA MATRIZ CUADRADA
Se llama matriz cuadrada a la que tiene tantas filas como columnas.
Las matrices A y B que las acabas de estudiar son cuadradas porque tienen tantas filas como
columnas.
12
Estas matrices tienen dos diagonales llamadas principal y secundaria.
En el ejemplo que tienes debajo ves una matriz cuadrada (4 filas y 4 columnas).
Los elementos señalados con la línea roja componen ladiagonal principal.
Son los que ocupan los lugares (1 1),(2 2),(3 3) y (4 4):
Los elementos señalados con la línea azul componen la diagonal secundaria.
Son los que ocupan los lugares (1 4),(2 3),(3 2) y (4 1).
Para declarar una matriz de tipo entero
Int matriz[10][10];
Pasos para ingresar una matriz
fila=10;
col=10;
for(i=1;i<=lim;i++)
{
for(j=1;j<=lim;j++)
{
gotoxy(10,8);printf("matriz");
gotoxy(col,fila);printf(" ");
13
gotoxy(col,fila);scanf("%d",&matriz[i][j]);
col=col+5;
}
fila++;
col=10;
}
Pasos para visualizar una matriz
fila=10;
col=10;
for(i=1;i<=lim;i++)
{
for(j=1;j<=lim;j++)
{
gotoxy(10,8);printf("matriz");
gotoxy(col,fila);printf("%d",matriz[i][j]);
col=col+5;
}
fila++;
col=10;
}
Pasos para encontrar la diagonal principal
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
if(i==j)
14
{
gotoxy(col,fila);printf("%d",matriz[i][j]);
col=col+5;
fila++;
}
}
}
Pasos para encontrar la diagonal secundaria
for(i=1;i<=limite;i++)
{
gotoxy(col,fila);printf("%d",matriz[i][j]);
j=j-1;
col=col-5;
fila=fila+1;
}
EJEMPLO:
Diseñe un programa utilizando funciones que me permita generar números pares en la
diagonal principal y números impares en la diagonal secundaria, e imprimir los números
correspondientes en la mitad.
Análisis
Para generar números pares
p=p+2;
Para generar números impares
b=b+2;
Condición para visualizar
if(i==a || j==a)
gotoxy(col-1,fila);printf("%d",matriz[i][j]);
15
Codificación
#include<conio.h> Librerías principales
#include<stdio.h>
int matriz[20][20],op,fila,col,i,j,lim,c,fac,p,i,b,a;
void borde()
{
for(i=1;i<=80;i++)
{
gotoxy(i,1);printf("/");
gotoxy(i,24);printf("*");
}
for(i=1;i<=24;i++) Función de borde
{
gotoxy(1,i);printf("*");
gotoxy(80,i);printf("*");
}
}
void cero(int limite)
{
fila=10;col=10;
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
matriz[i][j]=0; Función para llenar de cero la matriz
gotoxy(col,fila);printf("%d",matriz[i][j]);
16
col=col+5;
}
col=10;
fila++;
}
}
void ingreso(int limite)
{
col=10;
fila=10;
p=2;
a=limite/2;
a=a+1;
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++)
{
if(i==j) Función de ingreso
{
matriz[i][j]=p;
if(i==a || j==a)
{
gotoxy(col-1,fila);printf("%d",matriz[i][j]);
col=col+5;
p=p+2;
17
fila++;
}
else
{
gotoxy(col,fila);printf("%d",matriz[i][j]);
col=col+5;
fila=fila+1;
p=p+2;
}
}
else
{
matriz[i][j]=0;
}
}
}
j=limite; Proceso de programa
b=1;
col=col-5;
fila=10;
for(i=1;i<=limite;i++)
{
matriz[i][j]=b;
gotoxy(col,fila);printf("%d",matriz[i][j]);
j=j-1;
18
col=col-5;
fila=fila+1;
b=b+2;
j=j-1;
}
}
void principal(int limite)
{
col=40;
fila=10;
p=2;
a=limite/2;
a=a+1;
if(limite%2==0)
{
for(i=1;i<=limite;i++)
{
for(j=1;j<=limite;j++) Función Diagonales
{
if(i==j)
{
matriz[i][j]=p;
if(i==a || j==a)
{
gotoxy(col-1,fila);printf("%d",matriz[i][j]);
col=col+5;
p=p+2;
19
fila++;
}
else
{
gotoxy(col,fila);printf("%d",matriz[i][j]);
col=col+5;
fila=fila+1;
p=p+2;
}
}
}
}
}
else
{
for(i=1;i<=limite;i++)
{ Proceso del programa
for(j=1;j<=limite;j++)
{
if(i==j)
{
matriz[i][j]=p;
if(i==a || j==a)
{
gotoxy(col-1,fila);printf("%d",matriz[i][j]);
col=col+5;
p=p+2;
20
fila++;
}
else
{
gotoxy(col,fila);printf("%d",matriz[i][j]);
col=col+5;
fila=fila+1;
p=p+2;
}
}
}
}
}
}
void secundaria(int limite)
{
j=limite;
b=1;
col=col-5;
fila=10;
for(i=1;i<=limite;i++) Función secundaria
{
matriz[i][j]=b;
gotoxy(col,fila);printf("%d",matriz[i][j]);
j=j-1;
col=col-5;
fila++;
21
b=b+2;
}
}
void main()
{
do{
clrscr();
borde();
gotoxy(20,2);printf("Generar diagonales de la matriz");
gotoxy(10,4);printf("Ingrse el imite: ");scanf("%d",&lim);
cero(lim);
ingreso(lim); Programa principal
principal(lim);
secundaria(lim);
gotoxy(10,22);printf("Presione 1 para continuar o 0 para salir:
");scanf("%d",&op);
}while(op==1);
getch();
}
22
23
Bibliografía:
Funcione con vectores y matrices en c
www.slideshare.net
www.google.com.ec
Programar en C, Matrices, arrays.. Ingeniería Informática
www.todoexpertos.com
Programación en C/Matrices Dinamicas - Wikilibros
es.wikibooks.org
Array bidimensional o matriz
icaro.eii.us.es
ORDENACIÓN POR EL MÉTODO DE LA BURBUJA
www.estructuradedatos.galeon.com
Ordenamiento de burbuja - Wikipedia, la enciclopedia libre
es.wikipedia.org
Programación en C/Fundamentos de programación - Wikilibros
es.wikibooks.org
Programación en C/Uso de funciones - Wikilibros
es.wikibooks.org
Programación en C/Algoritmos y Estructuras de Datos - Wikilibros
es.wikibooks.org
Programación en C/Introducción - Wikilibros
es.wikibooks.org
Programación en C/Estructuras y Uniones - Wikilibros
es.wikibooks.org
Categoría:Programación en C - Wikilibros
es.wikibooks.org
Plataforma Educativa Informática: Entrar al sitio
24
www.josedomingo.org
C: Manual de C
www.josedomingo.org
Vector - Wikipedia, la enciclopedia libre
es.wikipedia.org
Vectores - Monografias.com
www.monografias.com
Curso: Lenguaje de Programación C
www.josedomingo.org
Arreglos - Vectores en C
www.slideshare.net
C: Vectores y matrices
www.josedomingo.org
Vectores, Matrices y Punteros en c++ | Imaginemos un mundo libre
ronnyml.wordpress.com
Programación en C/Vectores - Wikilibros
es.wikibooks.org
Arreglos - Vectores en C
www.slideshare.net
ww.casdreams.com
Lenguaje de programación C: Concepto, principios… | Blog Informático
www.bloginformatico.com
lenguaje c concepto - Buscar con Google
www.google.com.ec
Lenguaje programación Estructurado
html.rincondelvago.com
www.google.com.ec