Главная » Все файлы » Просмотр файлов из архивов » PDF-файлы » Семинар 1. Разработка циклических алгоритмов

Семинар 1. Разработка циклических алгоритмов (Семинары)

PDF-файл Семинар 1. Разработка циклических алгоритмов (Семинары) Программирование и алгоритмизация (51855): Семинары - 1 семестрСеминар 1. Разработка циклических алгоритмов (Семинары) - PDF (51855) - СтудИзба2019-09-11СтудИзба

Описание файла

Файл "Семинар 1. Разработка циклических алгоритмов" внутри архива находится в папке "Семинары". PDF-файл из архива "Семинары", который расположен в категории "". Всё это находится в предмете "программирование и алгоритмизация" из 1 семестр, которые можно найти в файловом архиве НИУ «МЭИ» . Не смотря на прямую связь этого архива с НИУ «МЭИ» , его также можно найти и в других разделах. .

Просмотр PDF-файла онлайн

Текст из PDF

Семинар 1. Разработка циклических алгоритмовЦель семинара: Овладение навыками разработки, кодирования на Си иотладки циклических алгоритмов.1. Задание1. Проработайте (еще раз) примеры §1.4.4 лекции 1. Попробуйте решить этизадачи самостоятельно, не заглядывая в лекцию. Если Ваше решениеотличается от лекционного, проанализируйте отличия. Как они повлияют наработу программы?2.

Отладьте программы примеров §1.4.4 лекции 1, рекомендации по отладкеданы в разделе 2.3. Выполните свой вариант задания (с Вашим номером по списку группы) израздела 5. Отчет по выполнению задания обязательно должен содержатьусловие задачи, анализ данных (возможно, в виде таблицы «Составданных»), блок-схему, программу.4. Проработайте (еще раз) пример из §1.5.2 лекции 1. Это задача на обработкуодномерных массивов. Попробуйте решить эту задачу самостоятельно, незаглядывая в лекцию. Если Ваше решение отличается от лекционного,проанализируйте отличия.

Как они повлияют на работу программы?5. Разберите два примера на обработку одномерных массивов из раздела 3.Попробуйте решить эти задачи самостоятельно, не заглядывая в лекцию.Если Ваше решение отличается от приведенного, проанализируйте отличия.Как они повлияют на работу программы?6. Выполните свой вариант задания (с Вашим номером по списку группы) израздела 6. Отчет по выполнению задания обязательно должен содержатьусловие задачи, анализ данных (возможно, в виде таблицы «Составданных»), блок-схему, программу.7.

Разберите пример на обработку двумерных массивов – матриц – израздела 4. Попробуйте решить эту задачу самостоятельно, не заглядывая влекцию. Если Ваше решение отличается от приведенного, проанализируйтеотличия. Как они повлияют на работу программы? Выполните свой вариантзадания на матрицы из раздела 7.Жду отчетов по индивидуальным заданиям разделов 5, 6, 7. Напоминаю, чтоотчет по выполнению задания обязательно должен содержать условие задачи,анализ данных (возможно, в виде таблицы «Состав данных»), блок-схему,программу.12. Краткая инструкция по созданию консольной Си++ программыWin32 в среде Microsoft Visual Studio 20081. Создайте проект (последовательно выбрав в менюФайл пункт Создать Проект).2.

В области типов проектов (слева) разверните Visual C++ и выберитегруппу Win32 . В окне справа щелкнитеэлемент Консольное приложение Win32.3. Введите имя проекта и папку для него.По умолчанию имя решения, содержащего проект, совпадает с именемпроекта.Нажмите кнопку ОК, чтобы создать проект.4. В окне мастера приложений Win32 справа нажмите параметрыприложения. В полученном окне выберите Консольное приложение иПустой проект и нажмите кнопку Готово.5. Если окно Обозреватель решений не открыто (обычно справа),откройте его, выберав в меню Вид пункт Обозреватель решений.6.

Добавьте новый исходный файл в проект, выполнив следующиедействия.a. В окне Обозреватель решений щелкните правой кнопкой мышипапку Файлы исходного кода и последовательно выберитепункты Добавить и Новый элемент.b. В узле Код выберите элемент Файл C++ (.cpp), введите имя файлаи нажмите кнопку Добавить.CPP-файл появится в папке "Исходные файлы" в окне Обозревательрешений и откроется в редакторе Visual Studio.7. В файле, открытом в редакторе, введите допустимый программный кодна языке C++.Пример кода (задача 1.3.4):#include <iostream>#include <conio.h>using namespace std;void main(){double A,B,p,At,Bt; int N,i;cout<<"A, B, p, N\n";cin>>A>>B>>p>>N;2At=A; Bt=B; i=1;while (At>=A/2 && i<=N){At=At-Bt;Bt=Bt-Bt*p/100;i=i+1;}if (At<A/2){i=i-1;cout<<"i="<<i;}elsecout<<"Time is over"<<endl;_getch();}8.

Сохраните файл.9. В меню Построение выберите Построить решение.10.В окне Выходные данные выводятся сведения о ходе компиляции, исообщение о состоянии построения.11.В меню Отладка выберите команду Начать отладку (или нажмитезеленый треугольник на панели инструментов). Обратите внимание надругие команды пункта меню Отладка и в дальнейшем принеобходимости используйте их для трассировки программы.12.Отладьте программу и протестируйте ее с разными исходными данными.13.Закройте проект (Файл/ Закрыть проект).14.Открывать существующий проект можно ТОЛЬКО активизацией файлапроекта с расширением .vcproj через Файл/ Открыть проект илищелчком на пиктограмме.33.

Примеры обработки одномерных массивовПример 1. Дан массив а из N элементов (N10). Вычислитьпроизведение элементов массива, меньших заданного значения с.Таблица 1. Состав данных примера 1.ИмяСмыслТипСтруктураИсходные данныезаданное значениевеществ.простая переменнаясчисло элементов массивацелыйпростая переменнаяNзаданный массиввеществ.одномерный массиваиз 10 элементовВыходные данныепроизведение элементоввеществ.простая переменнаярмассива, удовлетворяющихусловиюПромежуточные данныесчетчик элементов массивацелыйпростая переменнаяiколичество элементов,целыйпростая переменнаяkудовлетворяющих условиюОбратите внимание, что структура массива а предполагает отведение пода десяти ячеек памяти.

В программе описывается массив а из десятиэлементов, a используются лишь первые N них. Пользователь даннойпрограммы должен помнить, что вводимое значение числа элементов массивадолжно находиться в интервале 1N10. Проверка корректности введенногозначения N, несомненно, улучшила бы надежность программы; с цельюупрощения программы мы не делаем такой проверки. Для устранениянеобходимости распределения памяти под массив «по максимуму» в любомалгоритмическом языке, требующем компиляции, следует использоватьоператоры динамического распределения памяти, но этот материал выходит заграницы данного пособия.Блок-схема алгоритма приведена на рис.

1.4началоВвод с, N,a[i], i=0,…,N-1p:=1; k:=0i:=0`нетi<Nдадаa[i]<cp:=p*a[i]k:=k+1i:=i+1k=0давывод ‘нет такихвывод рэлементов’конецРис.1. Блок-схема программы примера 15Алгоритм не сильно отличается от рассмотренного в лекционномпримере. Остановимся на различиях. Для накапливания произведениянеобходимо перед циклом переменной р присвоить начальное значение 1(умножение на 1 не изменяет произведение).

Переменная k нужна длявыявления ситуации отсутствия элементов, меньших заданного значения;развилка после цикла позволяет обнаружить эту ситуацию.Далее приведена программа.include <stdio.h>#include <conio.h>#include <math.h>void main(){float a[10],c,p; int N,k,i;printf("Введите N, c\n");scanf_s("%d%f",&N,&c);printf("Введите массив из %d элементов\n",N);/* Далее цикл для поэлементного ввода массива*/for (i=0; i<N; i++)scanf_s("%f", &a[i]);/*Далее алгоритм по блок-схеме*/p=1; k=0;for (i=0; i<N; i++)if (a[i]<c){ p=p*a[i];k=k+1;}if (k==0)printf("Таких элементов нет\n");elseprintf(" p=%f \n",p);_getch();}6Пример 2. Дан массив а из N элементов (N10). Найти минимальноезначение среди элементов массива и номер элемента с таким значением.Таблица 2. Состав данных примера 2.ИмяСмыслТипСтруктураИсходные данныечисло элементов массива целыйпростая переменнаяNзаданный массиввещественны одномерный массив из 10айэлементовВыходные данныеминимальный элементвещественны простая переменнаяminмассивайномер минимальногоцелыйпростая переменнаяkэлементаПромежуточные данныесчетчик элементовцелыйпростая переменнаяiмассиваБлок-схема алгоритма приведена на рис.

2. В начале каждого выполненияцикла min – это минимальное значение среди (i-1) первых элементов массива.Это значение min сравнивается с а[i] и в результате определяется минимум изпервых i элементов массива; при изменении текущего минимального значениязапоминается номер элемента, на котором достигается текущий минимум(оператор k:=i).7началоВвод N,a[i], i=0,…,N-1min:=a[0]; k:=1i:=1нетiN-1даa[i]<minдаmin:=a[i]k:=i+1i:=i+1вывод min, kконецРис.2. Блок-схема программы примера 2Если минимальное (одинаковое) значение имеют несколько элементовмассива, то предложенный алгоритм выдаст наименьший из их индексов; принестрогом неравенстве (a[i]min) будет выдаваться наибольший номер.

Вситуации, когда надо определить номера всех элементов, имеющихминимальное значение, алгоритм должен иметь два цикла обработки: в первомцикле должен определяться минимум, а во втором по сравнению min=a[i]находиться номера элементов.#include <stdio.h>8#include <conio.h>void main(){float a[10],min; int N,k,i;printf("Введите N\n");scanf_s("%d",&N);printf("Введите массив из %d элементов\n",N);/* Далее цикл для поэлементного ввода массива*/for (i=0; i<N; i++)scanf_s("%f", &a[i]);/*Далее алгоритм по блок-схеме*/min=a[0]; k=1;for (i=1; i<N; i++)if (a[i]<min){ min=a[i];k=i+1;}printf(" min=%f k=%d \n",min,k);_getch();}94.

Пример обработки матрицДана матрица а из N строк и M столбцов (N5, M5). Для каждой строкиматрицы найти сумму элементов и определить число строк, для которых этасумма положительна.Таблица 3. Состав данных примера раздела 4.ИмяСмыслТипСтруктураИсходные данныечисло строк матрицыцелыйпростая переменнаяNчисло столбцовцелыйпростая переменнаяМзаданная матрицавещественный двумерный массиваразмером 5*5Выходные данныесчетчик строк матрицыцелыйпростая переменнаяiсумма элементов i-ойвещественный простая переменнаяsстрокичисло строк с положицелыйпростая переменнаяkтельной суммой элементовПромежуточные данныесчетчик столбцовцелыйпростая переменнаяjматрицыОбратим внимание, что считая s простой переменной мы предполагаем,что значения сумм всех строк должны последовательно записываться в однуячейку памяти. В этом случае в одном цикле по строкам мы должнывычислить сумму элементов строки s, вывести s и сравнить ее с нулем длявычисления k.

Можно было объявить s как одномерный массив (число егоэлементов равно числу строк матрицы); тогда алгоритм обработки мог бысостоять из двух последовательных циклов по строкам: в первом из нихвычислялись бы все элементы массива s и накапливалось значение k, а вовтором производился бы вывод значений элементов массива s.Таким образом, этот несложный пример иллюстрирует два очень важныхположения:101) выбор структуры данных (простая переменная или массив) может бытьнеоднозначен;2) выбор структуры данных влияет на алгоритм.Блок-схема алгоритма приведена на рис. 3,а.

Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
5173
Авторов
на СтудИзбе
436
Средний доход
с одного платного файла
Обучение Подробнее