|
Mostrar Temas
|
Páginas: 1 2 [3] 4
|
21
|
Programación / Programación C/C++ / Arreglos,punteros y sprintf.-
|
en: 12 Diciembre 2013, 21:46 pm
|
Hola a todos. Estoy estudiando punteros y me encuentro con este inconveniente que no puedo resolver, bueno no les doy más explicaciones porque en la captura queda claro que en la cadena concatenada me está tomando el salto de línea de las cadenas individuales, eso es lo que deseo resolver.- #include <stdio.h> #define MAX 30 int main(void){ char nombre_completo[93], *ptrNC = nombre_completo, primer_nombre[MAX+1], *ptrPN = primer_nombre, segundo_nombre[MAX+1], *ptrSN = segundo_nombre, apellido[MAX+1], *ptrAP = apellido; int longitud; printf("\n\n Ingrese primer nombre.....: "); fgets(ptrPN , MAX , stdin ); printf("\n Ingrese segundo nombre....: "); fgets(ptrSN , MAX , stdin ); printf("\n Ingrese apellido..........: "); fgets(ptrAP , MAX , stdin ); longitud = sprintf(ptrNC , "%s %s %s", ptrPN , ptrSN , ptrAP ); printf("\n El nombre completo es: %s.\n", ptrNC ); printf("\n Total de caracteres..: %d", longitud ); return 0; }
Saludos. Daniel
|
|
|
22
|
Programación / Programación C/C++ / ¿Una manera distinta de ordenar arreglos/vectores.-?
|
en: 3 Diciembre 2013, 21:03 pm
|
Hola amigos. Estoy en un verdadero inconveniente con esto de ordenar un arreglo, no pretendo redescubrir la rueda, simplemente estoy practicando y hace mucho tiempo se me antojó esta manera de ordenar pero no logro que funcione.- Con respecto a la cantidad de elementos del arreglo y hacerlo en una función luego lo arreglo, el tema es que alguna mente iluminada me diga dónde está el error.- Debo aclarar que en algunos casos funciona, me parece que el error se produce cuando el menor/mayor arrancan muy cerca de los extremos.- #include <stdio.h> void mostrar(int numeros[]); int main(void){ int numeros[] = {77,58,7,19,62,99,44,49,15,33}; int menor=9999, mayor=0, pos_men=0, pos_may=0, men_cam=0, may_cam=0,i, j=0, m=9; mostrar(numeros); for(i=0; i<5; i++){ men_cam = numeros[i]; may_cam = numeros[m]; for(j=i; j<=m; j++){ if(numeros[j] < menor){ menor = numeros[j]; pos_men = j; } if(numeros[j] > mayor){ mayor = numeros[j]; pos_may = j; } } numeros[i] = menor; numeros[pos_men] = men_cam; numeros[m] = mayor; numeros[pos_may] = may_cam; mostrar(numeros); printf("--> Menor=%d [%d] --- Mayor=%d [%d]", menor , pos_men +1, mayor , pos_may +1); menor=9999; mayor=0; m--; } mostrar(numeros); return 0; } void mostrar(int numeros[]){ int t; for(t=0; t<10; t++){ } }
Bueno espero ayuda.- Saludos. Daniel
|
|
|
23
|
Programación / Programación C/C++ / Acceder de forma individual a cada digito de un número entero(sin sprintf)
|
en: 15 Noviembre 2013, 22:46 pm
|
Hola a todos. Esta es la manera que estoy usando para poder acceder de forma individual a cada unos de los dígitos de un número, alguien sabe si se puede hacer lo mismo pero a mano o sea sin usar sprintf.- #include <stdio.h> #include <stdlib.h> #include <limits.h> #include <ctype.h> int main(void) { int numero, i, longitud, ok = 0, ch; char cad[11]; do{ printf("\n Ingresa un numero entero(maximo %d)....: ", INT_MAX ); ok = scanf("%d", &numero ) == 1 && numero >= 1 && numero <= INT_MAX ; while ((ch = getchar()) != EOF && ch != '\n'); }while(!ok); for(i = 0; i < longitud; i++){ printf("\n Posicion[%d] %c ", i +1, cad [i ]); } return 0; }
Bueno eso es todo.- Un saludo. Daniel
|
|
|
24
|
Programación / Programación C/C++ / Printf un poco especial en lenguaje C
|
en: 10 Noviembre 2013, 19:30 pm
|
Hago esta aclaración porque en muchos casos suponen que tengo 15 o 20 años(es lo lógico) y en realidad tengo 61, como comprenderán no voy a la facultad y la gente que conozco no tiene la más mínima idea lo que es la computadora y menos programar.- Hola a todos. Bueno luego de tantas idas y venidas pude finalizar el vendito almanaque, estoy contento porque he aprendido bastante con tantas prácticas debido a los innumerables errores, al grano, el programita que les dejo es parte del mismo y como verán lo que hace es verificar que se ingrese día , mes y año válidos, el problema es que no puedo lograr quitar el 0 que aparece después del printf, como lo muestra la imagen.- #include <stdio.h> #include <stdlib.h>
void mostrar(int orden, int dd, int mm, int aaaa);
int main(void){
int dd,mm,aaaa,orden,ok,ch; dd = mm = aaaa = orden = ok = ch = 0; do{ dd = 0; mostrar(0, dd, mm, aaaa); ok = scanf("%d", &dd) == 1 && dd >= 1 && dd <= 31; while ((ch = getchar()) != EOF && ch != '\n'); }while(!ok); do{ mm = 0; mostrar(1, dd, mm, aaaa); ok = scanf("%d", &mm) == 1 && mm >= 1 && mm <= 12; while ((ch = getchar()) != EOF && ch != '\n'); }while(!ok); do{ aaaa = 0; mostrar(2, dd, mm, aaaa); ok = scanf("%d", &aaaa) == 1 && aaaa >= 1 && aaaa <= 9999; while ((ch = getchar()) != EOF && ch != '\n'); }while(!ok); mostrar(3, dd, mm, aaaa); return 0; }
void mostrar(int orden, int dd, int mm, int aaaa){ system("CLS"); if(orden == 0){ printf("\n Ingrese dia...: %d", dd); } if(orden == 1){ printf("\n Ingrese dia...: %d", dd); printf("\n Ingrese mes...: %d", mm); } if(orden == 2){ printf("\n Ingrese dia...: %d", dd); printf("\n Ingrese mes...: %d", mm); printf("\n Ingrese año..: %d", aaaa); } } Lo que dejo en claro es que no quiero utilizar conio, Windows.h ni nada que salga de lo estándar.- Espero que en primer lugar que esto sea factible de lograr y que alguien en este foro sepa cómo hacerlo.- Un saludo. Daniel
|
|
|
25
|
Programación / Programación C/C++ / While duplica printf(fgets)(sscanf)
|
en: 7 Noviembre 2013, 15:30 pm
|
Hago esta aclaración porque en muchos casos suponen que tengo 15 o 20 años(es lo lógico) y en realidad tengo 61, como comprenderán no voy a la facultad y la gente que conozco no tiene la más mínima idea lo que es la computadora y menos programar.- Hola a todos. Debo aclarar que hace un día que estoy asiéndole cambios al código y Buscando en google, en este momento me doy por vencido y recurro a Uds. El caso es que el siguiente while me duplica en muchos casos los printf, bueno está todo dicho, si necesitan el código completo por favor me lo solicitan.- if(opciones == 1){ while(dd < 1 || dd > 31){ } d_d = 1; while(mm < 1 || mm > 12){ } m = mm; while(aaaa < 1 || aaaa > 9999){ } }
Desde ya muchas gracias por la ayuda que puedan brindarme.- Un saludo.
|
|
|
26
|
Programación / .NET (C#, VB.NET, ASP) / Indexadores en C#
|
en: 27 Agosto 2013, 22:50 pm
|
Hola a todos. En este caso les consulto 2 cosas.- 1):¿Me podrían decir si el uso de Indexadores es correcta?.- 2):¿Que estoy haciendo mal que el array no me queda ordenado.-? using System; namespace IndexadoresArray { class ProgramaApp { static void Main(string[] argumentos) { Entorno _Entorno = new Entorno (); _Entorno._entorno(); Datos _datos = new Datos (); _datos._Datos(); Console.Write("\n\n Pulse una tecla para cerrar la aplicación..."); Console.ReadLine(); } } }
using System; namespace IndexadoresArray { class Datos { private int[] numeros = new int[10]; public int this[byte indice] { get { return numeros[indice]; } set { numeros[indice] = value; } } public void _Datos() { byte _top = 2,hasElMom = 1; int aux = 0; Console.SetCursorPosition(02, _top); Console.Write("Ingrese 10 entero(máximo 99999)"); _top += 2; Console.SetCursorPosition(02, _top); Console.Write("Natutal Ordenados"); _top += 2; for (byte i = 0; i < 10; i++) { while (true) { Console.SetCursorPosition(02, _top); Console.Write(""); if ((int.TryParse(Console.ReadLine(), out aux)) && aux < 100000) { obj[i] = aux; break; } } Array.Sort(numeros); byte _topOrd = 6; for (byte f = 0; f < hasElMom; f++) { Console.SetCursorPosition(12, _topOrd); Console.Write("{0}", obj[f]); _topOrd++; } _top++; hasElMom++; } } } }
Bueno espero aflojar un poco, tengo miedo de cansarlos.- Saludos. Daniel PD. Por unas horas voy a estar un poco ocupado en otra cosa (a las 19.10 juega la selección - Argentina)
|
|
|
27
|
Programación / .NET (C#, VB.NET, ASP) / Arreglos Multidimensionales y ordenamiento
|
en: 24 Agosto 2013, 20:44 pm
|
Hola a todos. Estoy tratando de aprender un poco más sobre matrices, el caso es que con una dimensión logro hacerlo correctamente pero cuando quiero agregarle otra para insertar los códigos no me sale.- Otra cosita que me falta es, como debo hacer para que al ordenar por el nombre se corran los códigos como se muestra a continuación?.- Ingreso por teclado Ordenado por nombre 01 - Daniel Virgili 06 - Celeste Cid 02 - Rosita Scardino 04 - Claudio Raimonda 03 - Pedro Cimarelli 01 - Daniel Virgili 04 - Claudio Raimonda 05 - Pedro Carestia 05 - Pedro Carestia 03 - Pedro Cimarelli 06 - Celeste Cid 02 - Rosita Scardino using System; using System.Text.RegularExpressions;
namespace ArrayDaniel { class AgregarNombres { public void agrNombres() { int cant = 0; while(true) { Console.SetCursorPosition(02,02); Console.Write("Ingrese la cantidad de personas(máximo 10)...:"); if(Int32.TryParse(Console.ReadLine(), out cant)) { if (cant > 0 && cant < 11) { break; } } } Regex reg = new Regex("^[A-Za-z ]+$"); byte _top = 4; string[] nombres = new string[cant]; for(int i = 0; i<cant; i++) { while(true) { Console.SetCursorPosition(02, _top); Console.Write("Ingrese nombre....:"); string linea = Console.ReadLine(); if (!string.IsNullOrEmpty(linea) && reg.IsMatch(linea)) { nombres[i] = linea; break; } } _top += 2; } Array.Sort(nombres); _top += 2; Console.SetCursorPosition(02,_top); Console.Write(" ----- Se muestran los nombres ordenados ----- "); _top += 2; int a = 0; foreach(String i in nombres) { Console.SetCursorPosition(02, _top); Console.Write("Código...: Nombres...:{0}", nombres[a]); a++; _top ++; } } } } Espero que no les resulte demasiado tedioso y puedan ayudarme.- Un gran abrazo para todos. Daniel
|
|
|
28
|
Programación / .NET (C#, VB.NET, ASP) / Problemas con clase,objetos y propiedades
|
en: 3 Agosto 2013, 17:07 pm
|
Hola a todos. Bueno no puedo descubrir por mi mismo que estoy haciendo mal,el programa no me arroja ningún error pero no me imprime los datos que están guardados en la propiedades de la clase Datos.- Yo consideraba que con crear un objeto en la clase imprimir de la clase Datos lo podía hacer pero evidentemente algo estoy haciendo mal.- using System;
namespace Propiedades { class ProgramaAPP { public static void Main(string[] args) { Entorno entorno = new Entorno(); Datos DatosCte = new Datos(); Imprimir ImprimieCte = new Imprimir();
entorno._Entorno(); DatosCte.datos(); ImprimieCte._Imprimir(); } } } using System;
namespace Propiedades { public class Datos { public string Nombre { get; set; }
public double Sueldo { get; set; }
public void datos() { Datos dtos = new Datos(); string lineas = ""; do { Console.SetCursorPosition(02,02); Console.Write("Ingrese nombre completo....:"); lineas = Console.ReadLine(); }while(string.IsNullOrEmpty(lineas)); dtos.Nombre = lineas; bool resultado; double temSueldo; while(true) { Console.SetCursorPosition(02,04); Console.Write("Ingrese el sueldo mensual..:"); resultado = double.TryParse(Console.ReadLine(), out temSueldo); if(resultado && temSueldo != 0) { break; } } dtos.Sueldo = temSueldo; } } } using System;
namespace Propiedades { public class Imprimir { public void _Imprimir() { Datos idc = new Datos(); Console.SetCursorPosition(02,08); Console.Write("El cliente se llama...: {0} y gana mensualmente...$ {1}" , idc.Nombre,idc.Sueldo); Console.SetCursorPosition(02,10); Console.Write("Presione una tecla para cerrar la aplicación..."); Console.ReadKey();
} } } using System;
namespace Propiedades { public class Entorno { public void _Entorno() { Console.Title = " Práctica con propiedades"; } } } Estoy para el cachetazo psicológico, porque me suena que estoy cometiendo un error infantil.- Novlucker como notaras implemente las propiedades automáticas.- Saludos y desde ya muchas gracias.- Daniel
|
|
|
30
|
Programación / .NET (C#, VB.NET, ASP) / Array y propiedades en c sharp
|
en: 22 Julio 2013, 00:23 am
|
Saludos a todos. Alguien me podria enseñar como aplico las propiedades en el siguiente código- using System;
namespace Array { public class ingreso { public void datos() { string[] clientes = new string[5]; byte i = 0; byte delTop = 2;
while (i < 5) { Console.SetCursorPosition(02,delTop); Console.Write(" Ingrese nombre y apellido del Cliente....:"); string linea = Console.ReadLine(); if (!string.IsNullOrEmpty(linea)) { clientes[i] = linea; delTop +=2; i++; } } foreach(string ver in clientes) { Console.WriteLine("Clientes...:" + ver); } } } class Program { static void Main(string[] args) { ingreso ctes = new ingreso(); ctes.datos();
Console.ReadKey(); } } } Saludos y hasta la proxima. Daniel
|
|
|
|
|
|
|