рад са стринговима применом модуларног програмирања

1. Пројектовати на језику C програмски модул за рад са стринговима који садржи следеће функције:

  • издвајање стринга задате дужине од задате позиције датог стринга

  • брисање стринга задате дужине од задате позиције датог стринга

  • уметање задатог стринга на задатој позицији датог стринга

  • одређивање броја речи (низа знакова између два размака) у датом стрингу

  • изостављање сувишних размака у датом стрингу тако да између сваке две речи буде само један размак

  • одређивање броја понављања задатог стринга унутар датог стринга

  • изостављање првог појављивања задатог стринга из датог стринга

  • изостављање сваког појављивања задатог стринга из датог стринга

Написати на језику C главни програм за приказивање могућности горњег модула. Наставите са читањем

Advertisements

сортирање и претраживање низова применом модуларног порграмирања

1. Написати програмски модул за сортирање реалних низова. Навести све функције за сортирање низова (метод селекције – основна и побољшана верзија, метод bubble sort – основна и побољшана верзија, метод уметања – основна и побољшана верзија и quick sort). Предвидети приказивање делимично сортираног низа после сваког проласка кроз циклус.
Написати програмски модул за претраживање реалних низова. Навести све функције (секвенцијално за несортиран и сортиран низ, напредно секвенцијално и бинарно претраживање). Предвидети да и секвенцијално и бинарно претраживање враћају редни број траженог елемента.
У главном програму унети реалан низ. Након уношења броја за претрагу изабрати тип претраживања. Ако изабрани тип претраживања захтева сортирани низ – изабрати жељени тип сортирања. Приказати сортирани низ и редни број траженог елемента. Наставите са читањем

решени задаци из стрингова

1. Написати програм у коме се штампа табела са ASCII кодовима свих слова енглеске абецеде.

#include <stdio.h>
main()
{  int i;  
char c='a';
printf("Abeceda\n");    printf("ASCII kod i simbol\n");
for (i=0;i<26;i++)    printf("%8d      %c\n", c+i,c+i);   }

2. Написати програм у коме се уноси текст и штампа нови у коме нема размака (празнина).

#include <stdio.h>
#include <string.h>
#include <ctype.h>
main() {
    int i,n,j=0;
char str[80],novi[80];
puts("Unesi string:\n");
 gets(str);
n=strlen(str);
for (i=0;i<=n;i++)
  if (str[i]!=' ') {
    novi[j]=str[i];
    j++;
  }
novi[j]='\0';
printf("Novi string bez razmaka:\n");
puts(novi);  }

3. Написати програм у коме се уноси текст и штампа само великим словима.

#include <stdio.h>
#include <ctype.h>
main() {
int i;
char s[100];
puts("Unesi tekst:\n");    gets(s);
for (i=0;s[i]!='\0';i++)  s[i]=toupper(s[i]);
s[i]='\0';
printf("Uneti tekst sa velikim slovima:\n");   puts(s);  }

4. Написати програм у коме се одређује колико пута се дато слово појављује у датом тексту.

#include <stdio.h>
#include <string.h>
#include <ctype.h>
main()
{  int i,n,b=0;   
char str[80],slovo;
puts("Unesi string:\n");  gets(str);
puts("Unesi slovo:\n");  
scanf("%c",&slovo);
n=strlen(str);
for (i=0;i<=n;i++)
  if (tolower(str[i])==slovo) b++;
printf("Ukupan broj slova %c u datom tekstu je %d\n",slovo,b);   }

5. Написати програм у коме се одређује укупан број симбола у тексту, број слова, речи и реценица.

#include <stdio.h>
#include <string.h>
#include <ctype.h>
main()  {
int i,n,slova=0,reci=0,recenice=0;
char tekst[80];
puts("Unesi tekst:\n");
gets(tekst);
n=strlen(tekst);
for (i=0;i<n;i++)   {
  if (isalpha(tekst[i])) slova++;
  else if (isspace(tekst[i])) reci++;
       else if ((tekst[i]=='.')||(tekst[i]=='!')||(tekst[i]=='?')) recenice++;
}
printf("Ukupan broj simbola u tekstu:%d\n",n);
printf("Broj slova:%d\n",slova);
printf("Broj reci:%d\n",reci+1);       // broji i poslednju rec //
printf ("Broj recenica:%d\n",recenice);  }

6. Написати програм у коме се уносе редови текста све док се не унесе ред који садржи … и штампа најдузи унети ред.

#include<ctype.h>
#include<string.h>
#include<stdio.h>
main()  {
int i,n;
char red[100], max[100]="";
puts("Uneti string: ");
gets(red);
while(strcmp(red,"…")!=0)
{
if(strlen(red)>strlen(max))
strcpy(max,red);
gets(red);
}
printf("Najduzi red je: \n");
puts(max);  }

7. Написати програм у коме се уноси текст (малим словима и без размака). Формирати нови текст у обрнутом поретку и ако су исти штампати коментар да је унети текст PALINDROM.

#include <stdio.h>
#include <string.h>
#include <ctype.h>
main()  {
int i,j,n;
char t[30], u[30], pom;
printf("Unesi tekst:\n");
gets(t);
n=strlen(t);
for (i=0, j=n-1;i<n;i++, j--)    u[i]=t[j];
puts(u);
if (strcmp(t,u)==0)    printf ("Tekst je palindrom\n");
else     printf ("Tekst nije palindrom\n");  }

8. Унети текст па штампати колико пута се свако слово абецеде појављује у тексту.

#include<ctype.h>
#include<string.h>
#include<stdio.h>
main()  {
int i, n, j, brsl[26];
char tekst[100], slovo[26]="abcdefghijklmnopqrstuvwxyz";
puts("Uneti tekst: ");
gets(tekst);
n=strlen(tekst);
for (i=0; i<26; i++)    brsl[i]=0;
for (i=0; i<26; i++)
    for(j=0; j<n; j++)
       if(slovo[i]== tolower(tekst[j]))   brsl[i]++;
for (i=0; i<26; i++)    printf("Slovo %c se pojavljuje %d puta\n", slovo[i], brsl[i]);
}

Датотеке – задаци

1. Написати функцију за изостављање сваког појављивања задатог броја из низа целих бројева. Написати функцију за претварање низа целих бројева (који може да садржи и једнаке елементе) у скуп (чији су сви елементи различити). Написати програм који прочита целобројни низ, изоставља свако појављивање најмањег елемента из низа, претвори низ у скуп, испише добијени резултат и понавља претходне кораке све док за дужину низа не прочита недозвољену вредност. Низове читати из текстуалне датотеке ulaz.txt, прочитане низове и резултујуће низове уписати у текстуалну датотеку izlaz.txt. Наставите са читањем