Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методичка по лабораторным работам Программирование СИ.DOC
Скачиваний:
44
Добавлен:
20.05.2014
Размер:
439.81 Кб
Скачать

If(*s)//как только обнаружена русская буква,

return i;//возвращает номер строки, т.е. выходит из функции

}

return(k);//вернет –1, если русских букв не было

}

/*Функция вставляет три звездочки после каждой латинской буквы

в строке, которой принадлежит найденная подстрока.

Возвращает 1 если вставка была и 0 в противном случае*/

int ins(char *s)

{ char *s1,s2[4]="***",*j;

int f=0;//признак вставки

for(s1=s;*s1;s1++)

if(*s1>='A' && *s1<='Z' ||*s1>='a' && *s1<='z')

{//если символ латинская буква, освобождаем место для вставки *

j=strlen(s)+s; //указатель в конце строки - на нуль-символе

for(;j>s1;j--)//сдвиг символов вправо на 3 позиции,

// начиная с последнего символа

*(j+3)=*j;

s1++;//ставим указатель на символ, расположенный после

// латинской буквы

strncpy(s1,s2,3);//копируем звездочки

f=1;//вставка была

}

return f;

}

void main()

{ int n=0,n1,num[100],f,i,k;

char str [10][81],str1[10][81];

clrscr();

//ввод строк до пустой строки

printf("Введите строки: \n");

while(n<10 && *gets(str[n]))n++;;

substr(str,n,str1,&n1,num);//выделение подстрок

if (n1==0)

printf("Нет подстрок! \n");

else

{

printf("Выделено %d подстрок: \n",n1);

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

puts(str1[i]);

k=rus(str1,n1);//поиск номера подстроки с русской буквой

if(k==-1)

printf("Нет строк с русскими буквами!");

else

{

printf("Выделенная строка: %s\n",str1[k]);

if(f = ins(str[num[k]]))//если вставка была

printf("Преобразованная строка: %s\n",str[num[k]]);

else printf("Нет вставки\n");

}

}

getch();

}

    1. Лабораторная работа 4. "Структуры. Файлы "

  1. Написать программу, которая вводит в режиме запросов заданное число структур вида (в зависимости от номера варианта):

Запрос выводится с новой строки для каждого поля. Например:

После ввода массива структур программа ищет в нем следующую информацию:

  1. Названия телевизоров с размером по диагонали больше 50 см.

  2. Фамилии директоров, производящих телевизоры стоимостью свыше 7000 руб.

  3. Города, в которых производятся телевизоры стоимостью менее 4000 руб.

  4. Заводы, производящие телевизоры с самым большим размером экрана.

  5. Названия телевизоров с самым маленьким размером экрана.

  6. Фамилии директоров заводов, выпускающих самые дешевые телевизоры.

  7. Города, в которых производятся самые дорогие телевизоры.

  8. Названия самых дешевых цветных телевизоров.

  9. Названия самых больших черно-белых телевизоров.

  10. Заводы, производящие только цветные телевизоры.

  11. Города, в которых производятся только черно-белые телевизоры.

  12. Фамилии директоров, производящих самые большие черно-белые телевизоры.

  13. Заводы, производящие самые дешевые цветные телевизоры.

  14. Заводы, производящие телевизоры с размером экрана не менее 50 см.

  15. Фамилии директоров заводов, производящих телевизоры не дороже 3000 руб.

  16. Производителей самых дорогих цветных телевизоров.

  17. Названия самых дорогих холодильников.

  18. Города, в которых производятся самые тяжелые холодильники.

  19. Города, в которых производятся самые большие холодильники.

  20. Адреса заводов, производящих только холодильники дороже 4000 руб.

  21. Адреса заводов, производящих самые дешевые холодильники.

  22. Адреса заводов, производящих самые маленькие холодильники.

  23. Адреса заводов в Москве, производящих самые легкие холодильники.

  24. Названия холодильников объемом более 250 литров, выпускаемых в Москве.

  25. Города, в которых расположено максимальное число заводов.

  26. Города, в которых производится наибольшее число марок холодильников.

  27. Адреса заводов, производящих наибольшее число марок холодильников.

  28. Названия самых больших холодильников, выпускаемых в Санкт-Петербурге.

  29. Названия самых дешевых холодильников, выпускаемых в Москве.

  30. Все различные цены на холодильники, выпускаемые в Москве.

  31. Названия холодильников, производимых в городе с наименьшим числом заводов.

  32. Города, где производится наибольшее число холодильников разного объема.

ПРИМЕЧАНИЕ: Номер варианта выбирается равным номеру по журналу.

II. Модифицировать программу, написанную в первом пункте, таким образом, чтобы она вводила структуры из текстового файла и записывала результаты в файл.