Issuu on Google+

FACULTAD DE CIENCIAS HUMANAS Y DE LA EDUCACIÓN CARRERA DE DOCENCIA EN INFORMÁTICA PROGRAMACION II

ELEMENTO 1

Aracelly Silva Tercer Semestre Ing. Wilma Gavilanez

1


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

2


-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),

3


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

· Real

precisión simple

int float

- Carácter:

char

- Vacio:

void

-Estructurados: -

Complejos Estáticos

Tabla

- Dinámicos Lista Pila Cola Árbol Grafo -

Compuestos. Estructura Unión Enumeración

4


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

5

<= >


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)

6


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;

7


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 Double else

char

const continue

enum extern float

for

default do goto

if

Long register return short signed

sizeof static struct

Switch typedef union unsigned

void

int

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:

8


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.

9


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

int a[5];//Vector de 5 enteros

2

float b[5];//vector de 5 flotantes

3

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:

10


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 guardando valor_2 en elemento.

el

vector

anterior

definido

estaríamos

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.

11


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

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(" ");

12

diagonal

secundaria.


gotoxy(col,fila);scanf("%d",&matriz[i][j]); col=col+5; } fila++; col=10; } ď&#x192;&#x2DC; 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; } ď&#x192;&#x2DC; Pasos para encontrar la diagonal principal

for(i=1;i<=limite;i++) { for(j=1;j<=limite;j++) { if(i==j)

13


{ 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]);

14


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]);

15


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;

16


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;

17


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;

18


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;

19


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++;

20


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(); }

21


22


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

23


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

24


Lenguaje de programacion en C