Bienvenidos a un nuevo curso. Ahora estoy en el ciclo de grado superior: Desarrollo de aplicaciones multiplataforma. Y voy a ser parte del experimento de la formación dual. Estaré haciendo practicas durante un año, y a la vez finalizando la formación.

Deseadme suerte.

jueves, 30 de octubre de 2014

Lenguaje C

0

Caracteres
C hace normalmente un tratamiento muy sucio de los datos que almacena, mezclando representación interna y externa.
Una variable de tipo carácter, almacena internamente el valor ASCII del carácter. Externamente está esperando que le introduzca exactamente ese valor. 
Es al utilizar ciertas funciones de librería para representar esos caracteres por pantalla ciuando es interpretado ese valor y se muestran los caracteres tal cual. Yo en el programa puedo usar indistintamente 65, 'A', o '\65'. Para el lenguaje de programación C todo eso tiene el valor de 65.
Así ser esto así, yo puedo sumar y restar enteros y caracteres entre sí, o sólo caracteres, compararlos, etc. Ejemplo, la condición para indicar si una letra es mayúscula sería; (letra>='A' && letra<='Z')

Al parecer lo va a pasar más rápido de lo normal. Copio lo que se pueda!!

ctype.h
Existe un archivo de cabecera de la biblioteca estándar del lenguaje de programación C diseñado para operaciones básicas con caracteres. Contiene los prototipos de las funciones y macros para clasificar caracteres. Su uso no es necesario en absoluto ya que las cosas que hace son fácilmente programables.

Cadena de caracteres
Los stringhs en C son vectores de caracteres que tienen almacenado en algún punto el carácter '\0', que indica el fin de string.
Para declaraer una cadena de caracteres es necesario un carácter más que la cadena más larga que pueda contener, par dejar sitio para el carácter nulo del final de la cadena.
Las cadenas van entre comillas dobles.
Ejemplo: char v[6]="Lunes"
No es necesario añadir explícitamente el carácter nulo al final de las constantes de cadena, el compilador lo hace automáticamente.
Lectura de cadenas:
-char cadenas[255];
 scanf ("%s", cadena); /* No es necesario usar & porque cadena ya es un puntero*/
Escritura de cadenas:
-printf ("%i", cadena);

Conversión de cadenas: stdlib.h

Me distraje :/

double atof (cadena): Convierte una cadena de dígitos a double.
int atoi (cadena): Convierte una cadena de dígitos 
...

Manipulación de cadenas: string.h

Me falta un carácter

char*strcpy (s1, s2): Copia la cadena s2 en s1. Devuelbve s1.
char*strncpy (s1, s2, n): Copia si es posible n caracteres de la cadena s2 en s1. Devuelves s1.
char*strcat (s1, s2): Añade s2 a s1, machacando el valor final de s1, '\0'. Devuelve s1.
int strcmp (s1, s2): Compara las cadenas s1 y s2. Devuelve un número negativo si s1>...

Búsqueda en cadenas

Solo nombrare los tipos

char*strchr (s1, c):
size_t strcspn (s1, s2):
size_tstrspn (s1, s2):
char*strpbrk (s1, s2):
char*strrchr (s1, c):
char*strstr (s1, s2):
char*strtok (s1, s2): 

fin del tema 5 C, retomamos el tema 6 de teoría

Registros
Un registro es una agrupación o estructura de datos que me permiten almacenar agrupados diferentes datos que pueden ser de diferentes tipos.
Cuando yo quiero guardar información sobre cualquier cosa, suelo tener que guardar informaciones de tipos muy diversos que entre todos defienden cómo es esa cosa.
Por ejemplo, si quiero guardar información sobre diferentes coches que tengo guardados en un garaje procedentes de embargos de un banco, podría guardar modelo, mrca, color, matricula, kilometros, antiguedad, estado, etc. Cada uno de estos datos sería de tipos diferentes, y además no existe un orden concretro en el que deban ser almacenados esos datos, aunque si una asociación con lo que estoy guardando.
Para esto no podría utilizar un vector, incluso en el caso de que todos los datos fueran del mismo tipo, se tefieren todos a una misma realidad y concretamente a diferentes "subdatos"  de esa realidad, y me interesa guardar cada uno como una "subcaracteristica" de la cosa de la que estoy guardando información.
Un claro ejemplo de esto es un fecha, consta de día, mes y año, los tres son datos enteros, ahora bien, podría establecer limitaciones a los valores que pueden tomar esos tres datos. Pero no se me ocurriría guardarlos en un vector de tres componenetes, sino en un registro con tres campos que se llaman exactamente así: día, mes y agno.
Al igual que con los vectores, primero hay que declarar el tipo, con los campos que va a tener y posteriormente declarar las variables que serán de ese tipo.
Para acceder después a un campo concreto de un registro en el programa, se hará poniendo el nombre de la variable y el nombre del campo, separados por un punto.

Declaración y uso de registros
tipos
     <nombre_tipo>=          registro
                                                       <nombre_campo1>:<tipo_1>;
                                                       <nombre_campo_2>:<tipo2>;
                                                        ...
                                                       <nombre_campo_n>:<tipo_n>;
                                           freg;
variabloes
     <nombre_variable_1>, <nombre_variable_2>:<nombre_tipo>;
     <nombre_variable_3>:<nombre_tipo>;
     ...
principio
...
... <nombre_variable_1>.<nombre_campo_3>...
...
fin

Ejemplos (1)
tipos
     cad20=cadena[20];
     tipo_sexo=(varon,hembra);
     tipo_fecha=             registro
                                                  dia:1,31;
                                                  mes:1,12;
                                                  anyo: 0, 3000;
                                    freg;
    tipo_persona=         registro
                                                nombre, apellido1, apellido2, cad20;
                                                sexo tipo_sexo,
                                                fecha_nacimiento:tipo_fecha;
                                    freg;
    tipo_complejo_1=   registro
                                            parte_real, parte_imaginaria:real;
                                    freg;
    tipo_complejo_2=   registro
                                            modulo, argumentación real;
                                    freg;
variables
     ayer, hoy: tipo:fecha;
     yo, tu, el: tipo_persona;
    z: tipo_complejo_1;
    w: tipo_complejo_2;

Ejemplos (2)
principio
     ...
     ayer.dia:=13;
     ayer.mes:=3;
     ayer.anyo:=1988;
     hoy.día:=ayer.dia+1;
     el.sexo:=varon;
    el.fecha_nacimiento:=ayer;
    z.parte_real:=w.modulo*cos(w.argumento);
    z.parte_imaginaria:=w.modulo*sin(w.argumento);
    ...
fin

Ejercicios
Dado un tipo complejo con parte real y parte imaginaria, crear los siguientes procedimientos:
    tipos
          tipo.complejo:registro
               parte_real, parte_imaginaria:real;
         freg;
procedimiento crear_complejos(E v1:real, E v2:real, sx:tipo_complejo)
procedimiento sumar_complejos(Ex:tipo_complejo, E y:tipo_complejo. sz:tipo_complejo)
procedimiento multiplicar_complejos (Ex:tipo_complejo, E y:tipo_complejo. sz:tipo_complejo)

Related Posts:

  • ProgramaciónSolución: traspuesta de una matriz procedimiento trasponer (E/S m: matriz, E n: entero) {Traspone la matriz m de dimensión nxn} variables    … Read More
  • Registros Continuación tema 6 Ejemplo: números complejos  Aqui voy a ser mala y cuando Inazio lo suba al blog lo copio y pego, porque muero de dolor d… Read More
  • Explicaciones Introducen un texto por pantalla. ej. Hola, yo soy un texto. 1234 Y presionan enter. Hasta que no presionan enter el texto no va a parar hasta una se… Read More
  • Lenguaje C Caracteres C hace normalmente un tratamiento muy sucio de los datos que almacena, mezclando representación interna y externa. Una variable de tipo … Read More
  • juego Se que esta entrada sin el código no tiene sentido, pero lo tendré pronto, estoy trabajando en ello. Y pronto estará todo subido. Seguimos creando… Read More

0 comentarios:

Publicar un comentario

Etiquetas actuales

BD (67) DEF (64) PROG (64) SQL (44) Java (29) PRACTICAS (20) php (18) DI (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) HTML (13) SGE (12) ERP (9) CONSULTAS (8) css (8) Linux (5) XML (5) Android (4) PDM (4) C (3) NetBeans (3) PSP (3) SMARTY (3) comandos (3) HOOK (2) POST (2) XSD (2) cURL (2) JS (1) MEDIA-QUERYS (1) PDO (1) RESPONSIVE (1) TPL (1) TRADUCCIÓN (1) app_inventor (1)

Todas las etiquetas

EJER (78) BD (67) DEF (64) PROG (64) SQL (44) c# (40) Programación (39) Ficheros (36) Java (29) bases de datos (21) PRACTICAS (20) lenguajes de marcas (19) AD (18) Entorno de desarrollo (18) php (18) PROCEDIMIENTOS (17) DI (16) FORM (16) PRESTASHOP (16) PROGRAMACIÓN WEB (16) lenguaje C (16) E/R (14) HTML (13) SGE (12) Sistemas informáticos (10) ERP (9) CONSULTAS (8) TRANSACCIONES (8) TRIGGER (8) VISUAL BASIC (8) css (8) FUNCIONES (7) html5 (6) Ada (5) EXAMEN (5) Linux (5) XML (5) estructuras (5) Android (4) DISEÑO (4) INTERFAZ (4) LOG (4) OpenBravo (4) PDM (4) ACTUALIZAR (3) C (3) DIAGRAMA (3) Directorios (3) NEW (3) NOR (3) NetBeans (3) OLD (3) PSP (3) SMARTY (3) comandos (3) css3 (3) AISLAMIENTOS (2) C++ (2) CONTROLERRORES (2) ELIMINAR (2) HOOK (2) INSERTAR (2) INST (2) MULTITABLA (2) POST (2) RECURSIVIDAD (2) SUBCONSULTAS (2) VISTAS (2) XSD (2) cURL (2) punteros (2) AJENA (1) BLOQUEOS (1) Byte (1) CREACION (1) CRM (1) Configuración (1) Controles (1) Datos (1) GOTFOCUS (1) IMAGENES (1) INDICES (1) JS (1) Lenght (1) MEDIA-QUERYS (1) Mingw (1) MonoDeveloped (1) OPTIMISTA (1) PDO (1) PESIMISTA (1) RESPONSIVE (1) SPEAK (1) Scanner (1) Serializacion (1) Streams (1) System (1) TPL (1) TRADUCCIÓN (1) USUARIOS (1) UseSystemPasswordChar (1) app_inventor (1) char (1) examenes (1) libreoffice (1) make (1) redes (1)