4.  Дана строка S и число N. Преобразовать строку S в строку длины N следующим образом: если длина строки S больше N, то отбросить первые символы, если длина строки S меньше N, то в ее начало добавить символы "." (точка).

5.  Даны две строки: S1 и S2. Удалить из строки S1 все подстроки, совпадающие с S2. Если таких подстрок нет, то вывести S1 без изменений.

Методические рекомендации по проведению СРСП.

/* пример 1 */

/* Применение функций isdijit, isalpha, isalnum и isxdijit */

#include <stdio. h>

#include <ctype. h>

main()

{

printf(“Использование функции isdijit:\n”);

printf(“%s%s\n”, isdijit(‘8’) ? “8 является ” : “8 не является ”, “цифрой”);

printf(“%s%s\n\n”, isdijit(‘#’) ? “# является ” : “# не является ”, “цифрой”);

printf(“Использование функции isalpha:\n”);

printf(“%s%s\n”, isalpha(‘A’) ? “A является ” : “A не является ”, “буквой”);

printf(“%s%s\n”, isalpha(‘b’) ? “b является ” : “b не является ”, “буквой”);

printf(“%s%s\n”, isalpha(‘&’) ? “& является ” : “& не является ”, “буквой”);

printf(“%s%s\n\n”, isalpha(‘4’) ? “4 является ” : “4 не является ”, “буквой”);

printf(“Использование функции isalnum:\n”);

printf(“%s%s\n”, isalnum(‘A’) ? “A является ” : “A не является ”, “цифрой или буквой”);

printf(“%s%s\n”, isalnum(‘8’) ? “8 является ” : “8 не является ”, “цифрой или буквой”);

printf(“%s%s\n\n”, isalnum(‘#’) ? “# является ” : “# не является ”, “цифрой или буквой”);

НЕ нашли? Не то? Что вы ищете?

printf(“Использование функции isxdijit:\n”);

printf(“%s%s\n”, isalnum(‘F’) ? “F является ” : “F не является ”, “шестнадцатеричным числом”);

printf(“%s%s\n”, isalnum(‘J’) ? “J является ” : “J не является ”, “шестнадцатеричным числом”);

printf(“%s%s\n”, isalnum(‘7’) ? “7 является ” : “7 не является ”, “шестнадцатеричным числом”);

printf(“%s%s\n”, isalnum(‘$’) ? “$ является ” : “$ не является ”, “шестнадцатеричным числом”);

printf(“%s%s\n”, isalnum(‘f’) ? “f является ” : “f не является ”, “шестнадцатеричным числом”);

return 0; }

/* пример 2 */

/* Применение функций atof, atoi, atol */

#include <stdio. h>

#include <stdlib. h>

main()

{ double d; int i; long l;

d = atof(“99.0”)

printf(“Использование функции atof:\n”);

printf(“%s%.3f\n\n”, “Строка \”99.0\” преобразовалась в значение типа double ”, d);

i = atoi(“2593”)

printf(“Использование функции atoi:\n”);

printf(“%s%d\n\n”, “Строка \”2593\” преобразовалась в значение типа int ”, i);

l = atol(“1000000”)

printf(“Использование функции atol:\n”);

printf(“%s%ld\n\n”, “Строка \”1000000\” преобразовалась в значение типа long ”, i);

return 0; }

Контрольный пример 3. Дан текст, состоящий из слов, разделенных пробелами. Найти самое длинное слово и вывести его на экран.

/* пример 3 */

#include <stdio. h>

#include <conio. h>

#include <string. h>

#include <stdlib. h>

main ()

{

char s[] = "You must take this course again";

char *s1, *s2;

int len;

clrscr();

s1 = strtok(s, " ");

len=0;

while (s1!= NULL)

{

if (strlen(s1)>len) {

len=strlen(s1);

strcpy(s2,s1);

}

s1 = strtok(NULL, " ");

}

printf("Long token = %s\n", s2);

getch();

return 0;

}

/* пример 4 */

/* Применение функций strcpy, strncpy */

#include <stdio. h>

#include <string. h>

main()

{ char x[] = “Happy Birthday to You”;

char y[25], z[15];

printf(“%s%s\n%s%s\n”, “Строка x: ”, x,

“Строка y: ”, strcpy(y, x));

strncpy(z, x, 14);

z[14] = ‘\0’;

printf(“Строка z: %s\n”, z);

return 0; }

/* пример 5 */

/* Применение функций strcat, strncat */

#include <stdio. h>

#include <string. h>

main()

{ char s1[20] = “Happy ”;

char s2[] = “New Year”;

char s3[40] = “”;

printf(“s1 = %s\ns2 = %s\n”, s1, s2);

printf(“strcat(s1, s2) = %s\n”, strcat(s1, s2));

printf(“strncat(s3, s1, 6) = %s\n”,

strncat(s3, s1, 6));

printf(“strcat(s3, s1) = %s\n”, strcat(s3, s1));

return 0; }

Рекомендуемая литература.

1осн[325-355], 2осн[371-405]

5доп[46-51],6доп[116-126], 8доп[13-16]

Тема 12. Методы сортировки.

Форма проведения: Решение задач.

Задание: Для приведенных вариантов заданий применить различные методы сортировки.

Варианты заданий:

1.  Дан массив A(6, 6). Вывести строки массива по убыванию первых элементов строк.

2.  Дан массив A(6, 6). Вывести столбцы массива по возрастанию максимальных элементов столбцов.

3.  Дан массив A(6, 6). Вывести строки массива по неубыванию последних элементов строк.

4.  Дан массив A(6, 6). Вывести строки массива по невозрастанию минимальных элементов строк.

5.  Дан массив A(6, 6). Вывести столбцы массива по убыванию последних элементов столбцов.

Методические рекомендации по проведению СРСП.

Контрольный пример 1. (Метод пузырька). Упорядочить по неубыванию элементы массива А(100) (рисунок 11).

Контрольный пример 2. (Обменная сортировка). Упорядочить элементы массива А(100) по невозрастанию (рисунок 12).

Контрольный пример 3. (Сортировка по индексам). Упорядочить элементы массива А(100) по неубыванию.

/* пример 1 */

#include <stdio. h>

#include <conio. h>

#define n 100

main()

{ int i, b, pr, k, a[n];

clrscr();

for(i=0; i<n; i++) scanf(“%d”, &a[i]);

pr=k=1;

while (pr==1) {

pr=0;

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

if (a[i]>a[i+1]) {

b=a[i];

a[i]=a[i+1];

a[i+1]=b;

pr=1; }

k++; }

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

printf(“%3d”, a[i]);

getch();

return 0;

}


/* пример 2 */

#include <stdio. h>

#include <conio. h>

#define n 100

main()

{ int i, j, b, a[n];

clrscr();

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

scanf(“%d”, &a[i]);

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

for(j=i+2; j<n; j++)

if (a[i]<a[j]) {

b=a[i];

a[i]=a[j];

a[j]=b; }

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

printf(“%3d”, a[i]);

getch(); return 0; }

/* пример 3 */

#include <stdio. h>

#include <conio. h>

#define n 100

main()

{

int i, j, b, k, min, a[n];

clrscr();

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

scanf(“%d”, &a[i]);

i=0;

while (i<n-1)

{

min=a[i];

k=i;

for(j=i+1; j<n; j++)

if (a[j]<min)

{

min=a[j];

k=j;

}

b=a[i];

a[i]=a[k];

a[k]=b;

i++;

}

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

printf(“%3d”, a[i]);

getch();

return 0;

}

 

Тема 13. Составление программ решения задач с использованием структур данных.

Форма проведения: Решение задач.

Задание. Создать массив записей в соответствии с заданной структурой. Реализовать ввод и обработку записей.

Варианты заданий:

Варианты 1-5

Предусмотреть вывод значений для полей элементов массива записей по следующим ключам: по адресу юридической консультации, по названию юридической консультации, по фамилии, имени, отчеству (Ф. И.О.) адвоката или нотариуса, по номеру телефона адвоката или нотариуса.

Запросы:

1.  Определить, сколько юридических консультаций находится в определенном районе.

2.  Определить юридическую консультацию, в которой работает наибольшее количество адвокатов.

3.  Определить юридическую консультацию, в которой работает наименьшее количество нотариусов.

4.  Определить, сколько нотариусов и адвокатов работает в определенной юридической консультации.

5.  Определить юридические консультации, которые находятся на одной определенной улице.

Методические рекомендации по проведению СРСП.

Контрольный пример 1. Даны сведения о сотрудниках фирмы: фамилия, имя, адрес, возраст, телефон, зарплата. Вывести сведения о сотрудниках по имени Alex в возрасте от 25 до 30 лет.

Контрольный пример 2. Даны сведения о сотрудниках фирмы: фамилия, имя, адрес, возраст, телефон, зарплата. Вывести список сотрудников по убыванию возраста.

/* пример 1 */

#include <stdio. h>

#include <conio. h>

#include <string. h>

#include <stdlib. h>

#define n 3

struct person

{ char fam[20], name[15], address[30];

int age, phone, salary; };

main ()

{ struct person str_pr[n];

int i;

clrscr();

printf("Input svedeniya\n");

/* пример 2 */

#include <stdio. h>

#include <conio. h>

#define n 3

struct person

{

char fam[20], name[15], address[30];

int age, phone, salary;

};

main ()

{

struct person str_pr[n], buf;

int i, j;

clrscr();

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

{printf("%i person\n",i+1);

printf("Fam: ");

scanf("%s", str_pr[i].fam);

printf("Name: ");

scanf("%s", str_pr[i].name);

printf("Address: ");

scanf("%s", str_pr[i].address);

printf("Age: ");

scanf("%i", &str_pr[i].age);

printf("Phone: ");

scanf("%i", &str_pr[i].phone);

printf("Salary: ");

scanf("%i", &str_pr[i].salary);

printf("\n"); }

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

if (strcmp(str_pr[i].name,"alex")==0&&

str_pr[i].age>=25&&str_pr[i].age<=30)

{

printf("Fam: %s\n", str_pr[i].fam);

printf("Address: %s\n", str_pr[i].address);

printf("Phone: %i\n", str_pr[i].phone);

printf("Salary: %i\n", str_pr[i].salary);

}

getch();

return 0;

}

printf("Input svedeniya\n");

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

{printf("%i person\n",i+1);

printf("Fam: ");

scanf("%s", str_pr[i].fam);

printf("Name: ");

scanf("%s", str_pr[i].name);

printf("Address: ");

scanf("%s", str_pr[i].address);

printf("Age: ");

scanf("%i", &str_pr[i].age);

printf("Phone: ");

scanf("%i", &str_pr[i].phone);

printf("Salary: ");

scanf("%i", &str_pr[i].salary);

printf("\n"); }

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

for (j=i+1;j<n;j++)

if (str_pr[i].age<str_pr[j].age) {

buf=str_pr[i]; str_pr[i]=str_pr[j];

str_pr[j]=buf; }

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

{ printf("Fam: %s\n", str_pr[i].fam);

printf("Name: %s\n", str_pr[i].name);

printf("Address: %s\n", str_pr[i].address);

printf("Age: %i\n", str_pr[i].age);

printf("Phone: %i\n", str_pr[i].phone);

printf("Salary: %i\n", str_pr[i].salary); }

getch();

return 0; }

Рекомендуемая литература.

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27