Помош: Кратки програмки

M

Mr.InF3ction

Гостин
Уште оваа задача ми остана од темата со циклуси од збирката
Број се внесува како текст со помош на функцијата getchar. Треба да се испише најмалата и најголемата цифра на дадениот број.
Другите сите ги решив само овие со getchar некои не испаѓаат.

#include <stdio.h>
int main()
{
int c, najgolem, najmal, max = 1, min = 1;
printf("Vnesi broj: \n");
while ((c = getchar())!=EOF)
{
if (c > max)
{
najgolem = c;
}
if (c < min)
{
najmal = c;
}
printf("Najgolema cifra: %d, najmala cifra: %d", najgolem, najmal);
}
return 0;
}
Тоа со EOF кај циклусот не е добро. EOF значи end of file и го има во некоја дадотека на крајот. Ти читаш од тастатура па затоа треба некој знак да биде како крај за читање. Може пр '\n' да ставиш кога ќе притиснеш ентер да престане да чита или некој друг знак.
Друго бидејќи читаш со getchar и тоа иде во променлива за цел број, вредноста на c ќе биде ascii кодот на тој знак. Ако внесеш 0 c ќе биде 48 па се така до 9 се зголемува за +1.
И за да го добиеш тој број ти уствари треба од ascii кодот на внесениот знак (број) да одземеш 48 или '0' и така пр ако внесеш 1 ascii кодот е 49. а 49-48 =1 или како код c-48 или c-'0'.

Код:
#include <stdio.h>
#include <stdlib.h>
 
int main()
{
 
    int c,max=0,min=9;
    while((c=getchar())!='\n')
          {
            if((c-48)>=max)
                max=c-48;
            if((c-48)<=min)
                min=c-48;
          }
 
printf("Min = %d\nMax = %d",min,max);
}
 
Член од
17 февруари 2011
Мислења
775
Поени од реакции
33
Помош:??????????????

Помагајте луѓе, ми треба решение за следната задача:

1,- Да се најде средната цифра на внесен троцифрен број!

Појма немам од програмирање. Дајте алгоритам.

фала многу, а тоа што јас го знам ќе ви го кажам, само прашајте.............
 
Член од
8 октомври 2011
Мислења
65
Поени од реакции
48
Помош:??????????????

Помагајте луѓе, ми треба решение за следната задача:

1,- Да се најде средната цифра на внесен троцифрен број!

Појма немам од програмирање. Дајте алгоритам.

фала многу, а тоа што јас го знам ќе ви го кажам, само прашајте.............
#include <stdio.h>
int main()
{
int cifra, broj;
printf("Vnesi trocifren broj: ");
scanf("%d", &broj);
cifra = (broj/10)%10;
printf("Srednata cifra e: %d", cifra);
return 0;
}
 

Романтичарка

надежна форумџика
Член од
31 октомври 2009
Мислења
382
Поени од реакции
91
Се надевам погодив каде треба да прашам.
Мислам дека во компјутерот немам некое програмче за подршка на македонскиот јазик.Ете ќе симнам книга и не ми се отвара за читање туку ми се појавуваат некои цртки.
Исто и за превод на филм.
Ќе замолам кој знае која програма треба да ја симнам молам нека ми пише во пошта.
Многу ќе сум му благодарна.
--- надополнето: 28 февруари 2012 во 22:54 ---
Се надевам погодив каде треба да прашам.
Мислам дека во компјутерот немам некое програмче за подршка на македонскиот јазик.Ете ќе симнам книга и не ми се отвара за читање туку ми се појавуваат некои цртки.
Исто и за превод на филм.
Ќе замолам кој знае која програма треба да ја симнам молам нека ми пише во пошта.
Многу ќе сум му благодарна.
 
Член од
5 август 2009
Мислења
1.295
Поени од реакции
484
Се надевам погодив каде треба да прашам.
Мислам дека во компјутерот немам некое програмче за подршка на македонскиот јазик.Ете ќе симнам книга и не ми се отвара за читање туку ми се појавуваат некои цртки.
Исто и за превод на филм.
Ќе замолам кој знае која програма треба да ја симнам молам нека ми пише во пошта.
Многу ќе сум му благодарна.
Пробај го следново: Control Panel > Regional and language > Administrative > Language for non-unicode programs > Change system locale > Macedonian > Ok > Ok > ....
 
Член од
6 март 2012
Мислења
1
Поени од реакции
0
ми треба некој да ми направи во word текстуален дел за матура од игра (меморија)
начинот на кој е изработена програмата ...а всушност јас ја имам download ...
ако има заинтересиран нека ми пиши

Благодарам однапред :):):)
 
B

BrunoFresh

Гостин
Џиги никој нема да ти напрај ништо овде. Па не само овде, туку на кој било форум да појдеш. Едноставно што треба е , да се потрудиш да направиш ти. Доколку заглавиш овде, да го постираш делот кадешто си заглавил и да објасниш како сакаш да изгледа. Тогаш можеби некој ќе се најде добродушен и би ти помогнал. А вака, му крадеш професија, па ако сакаш и одназад заблагодариму се.
 
Член од
24 април 2012
Мислења
11
Поени од реакции
0
Ако може помош за семинарска во С++
Задачата гласи:
Да се направи програма која ке обозможува преглед на содржини на ЦД-а.За секое ЦД да постојат следните податоци:Наслов(име), Година на настанок, Режисер,Главен глумец(како стринг), Жанр. Во категорија Жанр, да бидат предвидени следните можности:Драма,Комедија,Акција,Трилер,Хорор.Во програмата да биде предвидена можност за внес на нови фимови,испис,пребарување по клучен збор, според име на филм,режисер или глумец,или листање на филмови од една категорија.

Благодарам однапред.
 
M

Mr.InF3ction

Гостин
И што не ти е јасно од оваа задача? Чекаш некој цела да ти ја реши?:rolleyes:
 
Член од
25 март 2012
Мислења
40
Поени од реакции
6
Ако може помош за семинарска во С++
Ako ти е за така да поминиш арно ако не прочитај ја разбери ја, ако сакаш нешто ќе ти објаснам... јас или другите од тука.
Код:
#include <cstdio> //standardna i/o biblioteka
#include <string.h>  //biblioteka za rabota so stringovi
#define MAXVEL 100 //Definiranje na maks golemina na nizi vo prog.
 
struct CDa {  /*Како sto rece pogore Naslov=naslov,godina na nastanok=godina,glaven glumec=glumec i zanr=Zanr*/
      char naslov[15];
      char reziser[15];
      char glumec[15];
      char zanr[15];
int godina;
};
 
void sortiraj(struct CDa* niza, int vel) /*sortiraj so bubble sort pri toa primi max broj na gol na niz i pokazuvac kon nizata za da se izmini sekoj clen na nizata*/
{
    int i,j;
    for (i=0; i<vel-1; i++)
    for (j=i+1; j<vel; j++)
    {
int nasl = strcmp(niza[i].naslov,niza[j].naslov);
int rez = strcmp(niza[i].reziser,niza[j].reziser);
int glum = strcmp(niza[i].glumec,niza[j].glumec);
int zan = strcmp(niza[i].zanr,niza[j].zanr);
 
if (nasl>0 || (nasl==0 && rez>0))
if (glum>0 || (glum==0 && zan>0))
{
{
          struct CDa priv=niza[i];
          niza[i]=niza[j];
          niza[j]=priv;
}
}
}
}
void vnes(struct CDa* niza, int* vel)/*Otkako ke bide vnesena nizata sortiraj ja*/
{
    struct CDa a;
 
if (*vel>=MAXVEL)
{
                  printf("Nema mesto!\n");
                  return;
                  }
                  printf ("vnesi naslov: ");
                  scanf("%s",a.naslov);
printf ("Vnesi reziser: ");
scanf("%s",a.reziser);
printf ("Vnesi glumec: ");
scanf("%s",a.glumec);
printf ("Vnesi zanr: ");
scanf("%s",a.zanr);
printf ("Vnesi godina na nastanok: ");
scanf("%d",&a.godina);
niza[(*vel)++]=a;
sortiraj(niza,*vel);
printf ("\n");
}
 
void ispis(struct CDa* niza, int vel) /*ispisuvanjeto se pravi so eden for pri sto se izminuvaat site clenovi na nizata*/
{
    int i;
    for (i=0; i<vel; i++)
    printf ("%d. Naslov:%s, Reziser:%s, Glaven glumec:%s Zanr: %s,Godina: %d\n", i+1, niza[i].naslov, niza[i].reziser, niza[i].glumec, niza[i].zanr, niza[i].godina);
printf ("\n");
}
void prebaraj(struct CDa* niza, int vel)/*Ovaa funkcija se izvrsuva edna na pocetokot i dava izgled na ednostanvo meni kade sto korisnikot ke izbira brojki kako opcii */
{
    int tip,i,tel,pronadjen=0;
    char prebaraj[15];
    printf ("\n Vnesi 1 za prebaruvanje po naslov ,2 za reziser i 3 za glumec: ");
scanf("%d",&tip);
if (tip==1)
{
          printf("Vnesi baran naslov: ");
scanf("%s",prebaraj);
for (i=0; i<vel; i++)
{
    if ((strcmp(prebaraj,niza[i].naslov)==0))
{
printf ("%d. Naslov:%s, Reziser:%s, Glaven glumec:%s Zanr: %s,Godina: %d\n", i+1, niza[i].naslov, niza[i].reziser, niza[i].glumec, niza[i].zanr, niza[i].godina);
pronadjen=1;
}
}
}
if (tip==2)
{
  printf("Vnesi baran reziser: ");
scanf("%s",prebaraj);
for (i=0; i<vel; i++)
{
    if ((strcmp(prebaraj,niza[i].reziser)==0))
{
printf ("%d. Reziser:%s, Naslov:%s, Glaven glumec:%s Zanr: %s,Godina: %d\n", i+1, niza[i].reziser, niza[i].naslov, niza[i].glumec, niza[i].zanr, niza[i].godina);
pronadjen=1;
}
}
}
if (tip==3)
{
printf("Vnesi baran glumec: ");
scanf("%s",prebaraj);
for (i=0; i<vel; i++)
{
    if ((strcmp(prebaraj,niza[i].glumec)==0))
{
printf ("%d. Glaven glumec:%s, Naslov:%s, Reziser:%s Zanr: %s,Godina: %d\n", i+1, niza[i].glumec, niza[i].naslov, niza[i].reziser, niza[i].zanr, niza[i].godina);
pronadjen=1;
}
}
}
if (pronadjen==0)
{
printf ("Ne e pronajden nieden rezultat.\n");
}
 
int pronajden;
if(pronajden==0)
{
printf ("Ne e pronajden nieden rezultat .\n\n");
}
printf ("\n");
}
 
void listanjesporedzanr(struct CDa* niza, int vel)
{
    int stip,i;
    char prebaraj[15];
 
    printf ("\n Vnesi 1 za prebaruvanje po zanr: ");
    scanf("%d",&stip);
if (stip==1)
{
          printf("Vnesi baran zanr: ");
          scanf("%s",prebaraj);
}
else
{
    printf("Ne vnesvte znak 1.");
}
for (i=0; i<vel; i++)
{
    if ((strcmp(prebaraj,niza[i].zanr)==0))
{
printf ("Filmovi spored toj zanr se: %s,\n", niza[i].naslov);
}
}
}
int main(int* argc,char *args[])
{
    struct CDa imenik[MAXVEL];
int velicina=0,izbor=-1;
while (izbor!=0)
{
printf ("Pritisni 1 za vnes, 2 za ispis, 3 za prebaruvanje, 4 za listanje spored zanr, 0 za izlez : ");
scanf ("%d", &izbor);
switch (izbor)
{
      case 1:
vnes(imenik,&velicina);
break;
case 2:
    ispis(imenik,velicina);
    break;
    case 3:
          prebaraj(imenik,velicina);
          break;
          case 4:
              listanjesporedzanr(imenik,velicina);
              break;
case 0:
break;
default:
printf ("Pogresen vnes !\n");
}
}
return 0;
}
Задачава опфаќа различни начини на решавање (сигурно ти имаат објаснато таму каде што учиш од кај да почниш на пр. со или без структури , со или без класи....-има повеќе начини да се реши дури и без покажувачи) и јас решава ваква задача пред една година и сеуште сум го чувал кодот.... не знам што да ти речам... почни ти од негде па некој ќе надополни или слично- кај што ќе застаниш ќе ти се објасни и сл.
 
Член од
24 април 2012
Мислења
11
Поени од реакции
0
Ako ти е за така да поминиш арно ако не прочитај ја разбери ја, ако сакаш нешто ќе ти објаснам... јас или другите од тука.
Код:
#include <cstdio> //standardna i/o biblioteka
#include <string.h>  //biblioteka za rabota so stringovi
#define MAXVEL 100 //Definiranje na maks golemina na nizi vo prog.
 
struct CDa {  /*Како sto rece pogore Naslov=naslov,godina na nastanok=godina,glaven glumec=glumec i zanr=Zanr*/
      char naslov[15];
      char reziser[15];
      char glumec[15];
      char zanr[15];
int godina;
};
 
void sortiraj(struct CDa* niza, int vel) /*sortiraj so bubble sort pri toa primi max broj na gol na niz i pokazuvac kon nizata za da se izmini sekoj clen na nizata*/
{
    int i,j;
    for (i=0; i<vel-1; i++)
    for (j=i+1; j<vel; j++)
    {
int nasl = strcmp(niza[i].naslov,niza[j].naslov);
int rez = strcmp(niza[i].reziser,niza[j].reziser);
int glum = strcmp(niza[i].glumec,niza[j].glumec);
int zan = strcmp(niza[i].zanr,niza[j].zanr);
 
if (nasl>0 || (nasl==0 && rez>0))
if (glum>0 || (glum==0 && zan>0))
{
{
          struct CDa priv=niza[i];
          niza[i]=niza[j];
          niza[j]=priv;
}
}
}
}
void vnes(struct CDa* niza, int* vel)/*Otkako ke bide vnesena nizata sortiraj ja*/
{
    struct CDa a;
 
if (*vel>=MAXVEL)
{
                  printf("Nema mesto!\n");
                  return;
                  }
                  printf ("vnesi naslov: ");
                  scanf("%s",a.naslov);
printf ("Vnesi reziser: ");
scanf("%s",a.reziser);
printf ("Vnesi glumec: ");
scanf("%s",a.glumec);
printf ("Vnesi zanr: ");
scanf("%s",a.zanr);
printf ("Vnesi godina na nastanok: ");
scanf("%d",&a.godina);
niza[(*vel)++]=a;
sortiraj(niza,*vel);
printf ("\n");
}
 
void ispis(struct CDa* niza, int vel) /*ispisuvanjeto se pravi so eden for pri sto se izminuvaat site clenovi na nizata*/
{
    int i;
    for (i=0; i<vel; i++)
    printf ("%d. Naslov:%s, Reziser:%s, Glaven glumec:%s Zanr: %s,Godina: %d\n", i+1, niza[i].naslov, niza[i].reziser, niza[i].glumec, niza[i].zanr, niza[i].godina);
printf ("\n");
}
void prebaraj(struct CDa* niza, int vel)/*Ovaa funkcija se izvrsuva edna na pocetokot i dava izgled na ednostanvo meni kade sto korisnikot ke izbira brojki kako opcii */
{
    int tip,i,tel,pronadjen=0;
    char prebaraj[15];
    printf ("\n Vnesi 1 za prebaruvanje po naslov ,2 za reziser i 3 za glumec: ");
scanf("%d",&tip);
if (tip==1)
{
          printf("Vnesi baran naslov: ");
scanf("%s",prebaraj);
for (i=0; i<vel; i++)
{
    if ((strcmp(prebaraj,niza[i].naslov)==0))
{
printf ("%d. Naslov:%s, Reziser:%s, Glaven glumec:%s Zanr: %s,Godina: %d\n", i+1, niza[i].naslov, niza[i].reziser, niza[i].glumec, niza[i].zanr, niza[i].godina);
pronadjen=1;
}
}
}
if (tip==2)
{
  printf("Vnesi baran reziser: ");
scanf("%s",prebaraj);
for (i=0; i<vel; i++)
{
    if ((strcmp(prebaraj,niza[i].reziser)==0))
{
printf ("%d. Reziser:%s, Naslov:%s, Glaven glumec:%s Zanr: %s,Godina: %d\n", i+1, niza[i].reziser, niza[i].naslov, niza[i].glumec, niza[i].zanr, niza[i].godina);
pronadjen=1;
}
}
}
if (tip==3)
{
printf("Vnesi baran glumec: ");
scanf("%s",prebaraj);
for (i=0; i<vel; i++)
{
    if ((strcmp(prebaraj,niza[i].glumec)==0))
{
printf ("%d. Glaven glumec:%s, Naslov:%s, Reziser:%s Zanr: %s,Godina: %d\n", i+1, niza[i].glumec, niza[i].naslov, niza[i].reziser, niza[i].zanr, niza[i].godina);
pronadjen=1;
}
}
}
if (pronadjen==0)
{
printf ("Ne e pronajden nieden rezultat.\n");
}
 
int pronajden;
if(pronajden==0)
{
printf ("Ne e pronajden nieden rezultat .\n\n");
}
printf ("\n");
}
 
void listanjesporedzanr(struct CDa* niza, int vel)
{
    int stip,i;
    char prebaraj[15];
 
    printf ("\n Vnesi 1 za prebaruvanje po zanr: ");
    scanf("%d",&stip);
if (stip==1)
{
          printf("Vnesi baran zanr: ");
          scanf("%s",prebaraj);
}
else
{
    printf("Ne vnesvte znak 1.");
}
for (i=0; i<vel; i++)
{
    if ((strcmp(prebaraj,niza[i].zanr)==0))
{
printf ("Filmovi spored toj zanr se: %s,\n", niza[i].naslov);
}
}
}
int main(int* argc,char *args[])
{
    struct CDa imenik[MAXVEL];
int velicina=0,izbor=-1;
while (izbor!=0)
{
printf ("Pritisni 1 za vnes, 2 za ispis, 3 za prebaruvanje, 4 za listanje spored zanr, 0 za izlez : ");
scanf ("%d", &izbor);
switch (izbor)
{
      case 1:
vnes(imenik,&velicina);
break;
case 2:
    ispis(imenik,velicina);
    break;
    case 3:
          prebaraj(imenik,velicina);
          break;
          case 4:
              listanjesporedzanr(imenik,velicina);
              break;
case 0:
break;
default:
printf ("Pogresen vnes !\n");
}
}
return 0;
}
Задачава опфаќа различни начини на решавање (сигурно ти имаат објаснато таму каде што учиш од кај да почниш на пр. со или без структури , со или без класи....-има повеќе начини да се реши дури и без покажувачи) и јас решава ваква задача пред една година и сеуште сум го чувал кодот.... не знам што да ти речам... почни ти од негде па некој ќе надополни или слично- кај што ќе застаниш ќе ти се објасни и сл.
Друже фала за кодот само има мал проблем .Го пустам кодот во CodeBlocks и кога внесуваш податоци на пр. режисер: ангеловски , така го прифаќа , а ако внесам режисер: ангеловски ангеловски ме префрла да внесам жанр не дозволува внесување на податок кај глумец. Прегледај го приврзокот 42721
 

Attachments

Член од
25 март 2012
Мислења
40
Поени од реакции
6
Тоа е заради празното место помеѓу зоборвите. Зборот после празното место го префрла кај следното scanf. Scanf функцијата со %s како влезен парам. кога работи со стрингови сите null-terminating карактери ги смета за завршни карактери. Ако сакаш да работиш и со празни места итн. користи gets. Вака ви изгледало:

Код:
gets(a.naslov);                 
printf ("vnesi naslov: ");
gets(a.naslov);
printf ("Vnesi reziser: ");
gets(,a.reziser);
printf ("Vnesi glumec: ");
gets(a.glumec);
printf ("Vnesi zanr: ");
gets(a.zanr);
--Не тестирав но мислам дека вака ќе работи на тој начин ти што мислиш(со празни места ).

Можи ке најдиш и некој други bugs како на пример ако внесиш ист стринг за два члена на структура или стрингот на еден член да се содржи во стрингот на друг итн., но сепак за едноставноста на кодот да се задржи не навлегов во било какви проверки на логички грешки или компликации , а ако ти треба можам да разгледам.
 
Член од
24 април 2012
Мислења
11
Поени од реакции
0
Тоа е заради празното место помеѓу зоборвите. Зборот после празното место го префрла кај следното scanf. Scanf функцијата со %s како влезен парам. кога работи со стрингови сите null-terminating карактери ги смета за завршни карактери. Ако сакаш да работиш и со празни места итн. користи gets. Вака ви изгледало:

Код:
gets(a.naslov);               
printf ("vnesi naslov: ");
gets(a.naslov);
printf ("Vnesi reziser: ");
gets(,a.reziser);
printf ("Vnesi glumec: ");
gets(a.glumec);
printf ("Vnesi zanr: ");
gets(a.zanr);
--Не тестирав но мислам дека вака ќе работи на тој начин ти што мислиш(со празни места ).

Можи ке најдиш и некој други bugs како на пример ако внесиш ист стринг за два члена на структура или стрингот на еден член да се содржи во стрингот на друг итн., но сепак за едноставноста на кодот да се задржи не навлегов во било какви проверки на логички грешки или компликации , а ако ти треба можам да разгледам.
Направив измена во кодот со gets, работи. Фала на помошта .
 
Член од
30 мај 2008
Мислења
21
Поени од реакции
0
zdravo
mi treba mala pomos okolu VB

momentalno imam edno 2d pole, tabela vo VB


Код:
Dim A(n,n) As Double
For i=1 To n
For j=1 To n
A(i,j)=Console.ReadLine()
Next j
Next i
E sega od koga ja napolniv tabelata sakam da viknam funkcija , da receme Funkcija(A)
ama mi dava odgovor System.Double[,] , t.e mi vika deka tabelata e prazna.Kako da ja zacuvam tabelata vo A i koga ke ja viknam funkcijata da mi vrsi nekoj operacii so A. Vo java bez problem moze Funkcija(A) ama tuka nesto ne e kako sto treba

Fala

Edit: Funkcijata e pa vakva Function Funkcija(ByRef A(,) As Double) ...........
 

Kajgana Shop

На врв Bottom