ПЯВУ — задания с готовыми программами.


Программирование на языках высокого уровня. Много задач на IT форуме.

Задачи на C#  Программы на языке C#

Дан текст удалить из текста все предложения, содержащие менее 4 слов и вывести новый текст.

#include <stdio.h>

#include <string.h>

int predl(char *st)

{

int n=1, l=strlen(st);

for (int i=0; i<(l-1); i++) if (st[i]==’ ‘ && st[i+1]!=’ ‘) n++;

return n;

}

void main ()

{

char s[10][255];

for (int i=0; i<10; i++)

{

printf(«Введи %d строку: «, i);

scanf(«%s», s[i]); fflush(stdin);

}

for (int i=0; i<10; i++)

if (predl(&s[i][0])<4) for (int j=i+1; j<10; j++) strcpy(s[j], s[j-1]);

for (int i=0; i<10; i++) printf(«%s\n», s[i]);

}

ФУНКЦИИ:

11) Написать программу разложения числа А(A<106) на простые делители, подсчитывая, сколько раз встречается один и тот же простой делитель, а также вычислить сумму этих делителей.

#include <conio.h>

#include <stdio.h>

#include <math.h>

int summ(int n)

{

int sum = 0;

int m[1000][2], a=0;

int n1 = n;

for (int i=1; i<=n1; i++)

{

if (n1%i == 0)

{

int k = 0;

for (int k1=2; k1<i; k1++) if (i%k1 == 0) {k++;}

if (k == 0 && i != 1) {

sum += i;

m[a][0] = i;

m[a][1] = 1;

printf(«=== [%d] n = %4d  k = %4d\n», a, m[a][0], m[a][1]);

printf(«=== [%d / %d] = %d\n», n1, i, n1/i);

for (int l=0; l<a; l++) if (m[l][0] == i) {m[l][1] = m[l][1] + 1;}

a++;

n1 = n1 / i;

i = 1;

}

}

printf(«\n»);

for (int j=0; j<a; j++)

{

printf(«[%d] n = %4d  k = %4d\n», j, m[j][0], m[j][1]);

}

return sum;

}

void main()

{

int n = 0;

clrscr();

printf(«Введи число: «);

scanf(«%d», &n);

if (n < pow(10, 6))

{

printf(«Сумма = %d», summ( n ));

} else {printf(«Введённое число больше 10^6\n»);}

}

23) сформировать новый массив из тех элементов которые являются квадратами своих  номеров.

#include <conio.h>

#include <stdio.h>

#include <math.h>

int kvadrat(int a)

{

for (int i=0; i<n; i++)

if (a[i]==i*i) return a[i]; else return 0;

}

void main()

{

clrscr();

int a[100], b[100];

for(int i = 0; i < 100; i++)

{

a[i] = rand();

printf («%d», a[i]);

}

int bi=0;

for (i=0; i<100; i++) if (kvadrat(a[i])>0)

{

b[bi] = kvadrat(a[i]);

printf(“%d”, b[bi]);

bi++;

}

getch();

}

СТРОКИ:

23) Дана строка из n символов. Преобразовать ее, заменив все двоеточия (:), встречающиеся среди первых n/2 символов, и заменив точками все восклицательные знаки, встречающиеся среди символов, стоящих после n/2 символов.

#include <conio.h>

#include <stdio.h>

#include <string.h>

void main()

{

Char *a ;

printf («Введите строку: «) ;

scanf («%s»,a) ;

int n=strlen (a) ;

for (i=0;  i<n; i++)

{

if  (int i<=n/2) && (a[i] == ‘:’) a[i] = ’ ’ ;

if (i>=n/2) && (a[i] == ‘!’) a[i] = ’.’ ;

}

printf(«%s»,a) ;

}

2)Дана строка, содержащая текст, включающий русские и английские слова. Подсчитать, каких букв в тексте больше — русских или латинских.

#include <conio.h>

#include <stdio.h>

#include <string.h>

void main()

{

char *a ;

printf («введите строку: «) ;

scanf («%s»,a) ;

int  R=0, L=0;

for (int i=0;  i< strlen (a); i++)

{

if  (a[i]>=’A’) && (a[i] < =’Z’) L++;

if  (a[i]>=’А’) && (a[i] < =’Я’) R++;

}

if (R>L)

printf («русских букв больше»);

else

printf («латинских букв больше»);

}

МАССИВЫ СТРОК:

  • В программе вводятся по очереди символьные строки. Количество букв ‘а’ в этих строках подсчитывается в функции, и это число возвращается в основную программу. Конец ввода строк это ввод нулевой строки.

#include <conio.h>

#include <stdio.h>

#include <string.h>

int func (char *a)

{

int k=0;

for (i=0; i<=strlen(a); i++)

if (a[i]=’a’) k++;

return k;

}

void main()

{

char *a ;

do

{

printf («введите строку: «) ;

scanf («%s»,a) ;

printf («количество а =%d \n», func(a)) ;

}

wnile (strlen(a)!=0);

}

СТРУКТУРЫ:

  1. Структура «Автомобиль»: Задания 1, 2, 3, 4, 6.
  • марка;
  • цвет;
  • серийный номер;
  • регистрационный номер;
  • количество дверей;
  • дата выпуска (день, месяц, год);
  • цена.

#include <conio.h>

#include <stdio.h>

#include <string.h>

struct DateAvto

{

unsigned char day;

unsigned char month;

unsigned char year;

};

struct Avto {

char marka[10];

char color[7];

char serial[16];

char regN[6];

unsigned char doors;

int price;

DateAvto DateV;

Avto *Next, *Previous;

};

Avto *Top, *Start, *End;

int SFA = 0;

void AddAvto();

void FillAvto();

void PrintHeader();

void PrintData();

void PrintPages();

void main ()

{

clrscr();

Top = new Avto;

Start = End = Top;

printf(«Введи количество записей в массиве: «);

scanf(«%d», &SFA);

clrscr();

FillAvto();

PrintData();

printf(«\n\nДополните массив новой записью…\n\n»);

Top = End;

AddAvto(); SFA++;

PrintPages();

}

void AddAvto()

{

printf(«Введи марку автомобиля: «);

scanf(«%10s», Top->marka); fflush(stdin);

printf(«Цвет: «);

scanf(«%7s», Top->color); fflush(stdin);

printf(«Серийный номер: «);

scanf(«%16s», Top->serial); fflush(stdin);

printf(«Регистрационный номер: «);

scanf(«%6s», Top->regN); fflush(stdin);

printf(«Количество дверей: «);

scanf(«%d», Top->doors); fflush(stdin);

printf(«Дата выпуска (день месяц год): «);

scanf(«%d %d %d», &Top->DateV.day, &Top->DateV.month, &Top->DateV.year); fflush(stdin);

printf(«Стоимость: «);

scanf(«%d», &Top->price); fflush(stdin);

Avto *temp = new Avto;

temp->Next = NULL;

temp->Previous = Top;

Top->Next = temp;

Top = temp;

Top->Previous = temp;

End = Top;

}

void FillAvto()

{

Top = Start;

for (int i=0; i<SFA; i++)

{

printf(«[%d]\n», i+1);

AddAvto();

}

}

void PrintHeader()

{

clrscr();

printf(«+———-+——-+—————-+——+———+—————+————+»);

printf(«|   Марка  |  Цвет |   Серийный №   | Рег.№| Дверей | Дата выпуска | Стоимость |»);

printf(«+———-+——-+—————-+——+———+—————+————+»);

}

void PrintData()

{

PrintHeader();

Top = Start;

for (int i=0; i<SFA; i++)

{

printf(«|%10s|%7s|%16s|%6s|%8d|   %2d.%2d.%2d   |%11d|», Top->marka, Top->color, Top->serial, Top->regN, Top->doors, Top->DateV.day, Top->DateV.month, Top->DateV.year, Top->price);

Top = Top->Next;

}

}

void PrintPages()

{

PrintHeader();

Top = Start;

int n = 0;

for (int i=0; i<SFA; i++)

{

printf(«|%10s|%7s|%16s|%6s|%8d|   %2d.%2d.%2d   |%11d|», Top->marka, Top->color, Top->serial, Top->regN, Top->doors, Top->DateV.day, Top->DateV.month, Top->DateV.year, Top->price);

if (Top->Next != NULL) Top = Top->Next;

n++;

if (n>22) {

printf(«Для продолжения нажми любу кнопку…»);

getch();

clrscr();

PrintHeader();

n=0;

}

}

}

СПИСКИ:

  1. Удаление узла с конца списка

void DeleleEndAvto()

{

Avto *temp = End;

End = temp->Prior;

End->Next = NULL;

delete temp;

}

ФАЙЛЫ:

Дан символьный файл, содержащий информацию в виде:  фамилия_имя_отчество. Записать эту  информацию  в  другой  символьный файл в виде: фамилия_и.о.

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

clrscr();

int k;

char s[100], b[100];

FILE *f, *f2;

f = fopen(«D:\\BORLANDC\\OUT\\fio1.txt», «r»);

f2 = fopen(«D:\\BORLANDC\\OUT\\fio2.txt», «w»);

while(!feof(f))

{

int i=0;

for (i=0; i<100; i++) {b[i]=0; s[i]=0;}

fgets(s, 80, f);

int len = strlen(s);

for (k=0; k<len; k++) { b[k]=s[k]; if (s[k]==’ ‘) break;}

b[k]=’ ‘; b[k+1]=s[k+1]; b[k+2]=’.’; k+=2;

for (i=k; i<len; i++) if (s[i]==’ ‘) break;

b[k+1]=s[i+1]; b[k+2]=’.’;

fputs(b, f2); fputc (‘\n’, f2);

}

fclose(f);

fclose(f2);

}

29)Написать программу, которая считывает  текст из файла и выводит на экран только цитаты, то есть предложения, заключенные в кавычки.

#include <stdio.h>

#include <conio.h>

#include <string.h>

void main()

{

clrscr();

char a;

FILE g;

g=fopen(D:\\text.txt»,»r»);

while(!feof(f))

{

fscan (g,”%c”&a);

if (a = = ’ ” ’)

{ fscan (g,”%c”&a);

while (a!=’”’) && (!feof(g))

{ printf(“ %c” , a)

fscan (g,”%c”&a);

}

printf(“\n”);

}

}

fclose(g);

}

Загрузка...